Device for deriving affine merge candidate

ABSTRACT

Technology for improving coding efficiency by performing a block split suitable for picture coding and decoding is provided. A moving-picture coding device for performing an affine transform in units of coding blocks includes an affine inheritance merging candidate derivation unit configured to derive an affine inheritance merging candidate for inheriting an affine model of blocks neighboring a coding target block in a space domain, an affine construction merging candidate derivation unit configured to derive an affine construction merging candidate from a plurality of motion information elements of blocks neighboring the coding target block in a space or time domain, and an affine fixation merging candidate derivation unit configured to derive an affine fixation merging candidate in which motion information of an affine control point is fixed. A motion vector of each affine control point is fixed to (0, 0) in the affine fixation merging candidate.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/269,971, filed on Feb. 19, 2021, now allowed, which is a U.S.National Stage entry of PCT Application No: PCT/JP2019/050012 filed Dec.20, 2019, which claims priority to Japanese Patent Application No.2018-247409 filed Dec. 28, 2018, the contents of which are incorporatedherein by reference.

FIELD OF THE INVENTION

The present invention relates to picture coding and decoding technologyfor dividing a picture into blocks and performing prediction.

DESCRIPTION OF RELATED ART

In picture coding and decoding, a target picture is divided into blocks,each of which is a set of a prescribed number of samples, and a processis performed in units of blocks. Coding efficiency is improved bydividing a picture into appropriate blocks and appropriately settingintra picture prediction (intra prediction) and inter picture prediction(inter prediction).

In moving-picture coding/decoding, coding efficiency is improved byinter prediction for performing prediction from a coded/decoded picture.Patent Document 1 describes technology for applying an affine transformat the time of inter prediction. It is not uncommon for an object tocause deformation such as enlargement/reduction and rotation in movingpictures and efficient coding is enabled by applying the technology ofPatent Document 1.

PRIOR ART DOCUMENTS Patent Documents [Patent Document 1]

Japanese Unexamined Patent Application, First Publication No. H9-172644

SUMMARY OF THE INVENTION

However, because the technology of Patent Document 1 involves a picturetransform, there is a problem that the processing load is great. In viewof the above problem, the present invention provides efficient codingtechnology with a low load.

For example, embodiments to be described below may be associated withthe following aspects.

According to a first aspect, there is provided a moving-picture codingdevice for performing an affine transform in units of coding blocks, themoving-picture coding device including: an affine inheritance mergingcandidate derivation unit configured to derive an affine inheritancemerging candidate for inheriting an affine model of blocks neighboring acoding target block in a space domain; an affine construction mergingcandidate derivation unit configured to derive an affine constructionmerging candidate from a plurality of motion information elements ofblocks neighboring the coding target block in a space or time domain;and an affine fixation merging candidate derivation unit configured toderive an affine fixation merging candidate in which motion informationof an affine control point is fixed, wherein a motion vector of eachaffine control point is fixed to (0, 0) in the affine fixation mergingcandidate.

According to a second aspect, there is provided a moving-picture codingmethod of performing an affine transform in units of coding blocks, themoving-picture coding method including: an affine inheritance mergingcandidate derivation step of deriving an affine inheritance mergingcandidate for inheriting an affine model of blocks neighboring a codingtarget block in a space domain; an affine construction merging candidatederivation step of deriving an affine construction merging candidatefrom a plurality of motion information elements of blocks neighboringthe coding target block in a space or time domain; and an affinefixation merging candidate derivation step of deriving an affinefixation merging candidate in which motion information of an affinecontrol point is fixed, wherein a motion vector of each affine controlpoint is fixed to (0, 0) in the affine fixation merging candidate.

According to a third aspect, there is provided a moving-picture codingprogram for performing an affine transform in units of coding blocksstored in a computer-readable non-transitory recording medium, themoving-picture coding program causing a computer to execute: an affineinheritance merging candidate derivation step of deriving an affineinheritance merging candidate for inheriting an affine model of blocksneighboring a coding target block in a space domain; an affineconstruction merging candidate derivation step of deriving an affineconstruction merging candidate from a plurality of motion informationelements of blocks neighboring the coding target block in a space ortime domain; and an affine fixation merging candidate derivation step ofderiving an affine fixation merging candidate in which motioninformation of an affine control point is fixed, wherein a motion vectorof each affine control point is fixed to (0, 0) in the affine fixationmerging candidate.

According to a fourth aspect, there is provided a moving-picturedecoding device for performing an affine transform in units of decodingblocks, the moving-picture decoding device including: an affineinheritance merging candidate derivation unit configured to derive anaffine inheritance merging candidate for inheriting an affine model ofblocks neighboring a decoding target block in a space domain; an affineconstruction merging candidate derivation unit configured to derive anaffine construction merging candidate from a plurality of motioninformation elements of blocks neighboring the decoding target block ina space or time domain; and an affine fixation merging candidatederivation unit configured to derive an affine fixation mergingcandidate in which motion information of an affine control point isfixed, wherein a motion vector of each affine control point is fixed to(0, 0) in the affine fixation merging candidate.

According to a fifth aspect, there is provided a moving-picture decodingmethod of performing an affine transform in units of decoding blocks,the moving-picture decoding method including: an affine inheritancemerging candidate derivation step of deriving an affine inheritancemerging candidate for inheriting an affine model of blocks neighboring adecoding target block in a space domain; an affine construction mergingcandidate derivation step of deriving an affine construction mergingcandidate from a plurality of motion information elements of blocksneighboring the decoding target block in a space or time domain; and anaffine fixation merging candidate derivation step of deriving an affinefixation merging candidate in which motion information of an affinecontrol point is fixed, wherein a motion vector of each affine controlpoint is fixed to (0, 0) in the affine fixation merging candidate.

According to a sixth aspect, there is provided a moving-picture decodingprogram for performing an affine transform in units of decoding blocksstored in a computer-readable non-transitory recording medium, themoving-picture decoding program causing a computer to execute: an affineinheritance merging candidate derivation step of deriving an affineinheritance merging candidate for inheriting an affine model of blocksneighboring a decoding target block in a space domain; an affineconstruction merging candidate derivation step of deriving an affineconstruction merging candidate from a plurality of motion informationelements of blocks neighboring the decoding target block in a space ortime domain; and an affine fixation merging candidate derivation step ofderiving an affine fixation merging candidate in which motioninformation of an affine control point is fixed, wherein a motion vectorof each affine control point is fixed to (0, 0) in the affine fixationmerging candidate. Also, these descriptions are examples. The scope ofthe present application and the present invention is not limited orrestricted to these descriptions. Also, it should be understood that thedescription of the “present invention” in the present specification doesnot limit the scope of the present invention or the present application,but is used as an example.

Advantageous Effects of Invention

According to the present invention, it is possible to implement a highlyefficient picture coding/decoding process with a low load.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a picture coding device according to anembodiment of the present invention.

FIG. 2 is a block diagram of a picture decoding device according to anembodiment of the present invention.

FIG. 3 is an explanatory flowchart showing an operation of dividing atree block.

FIG. 4 is a diagram showing a state in which an input picture is dividedinto tree blocks.

FIG. 5 is an explanatory diagram showing Z-scan.

FIG. 6A is a diagram showing a divided shape of a block.

FIG. 6B is a diagram showing a divided shape of a block.

FIG. 6C is a diagram showing a divided shape of a block.

FIG. 6D is a diagram showing a divided shape of a block.

FIG. 6E is a diagram showing a divided shape of a block.

FIG. 7 is an explanatory flowchart showing an operation of dividing ablock into four parts.

FIG. 8 is an explanatory flowchart showing an operation of dividing ablock into two or three parts.

FIG. 9 is syntax for expressing a shape of block split.

FIG. 10A is an explanatory diagram showing intra prediction.

FIG. 10B is an explanatory diagram showing intra prediction.

FIG. 11 is an explanatory diagram showing a reference block of interprediction.

FIG. 12 is syntax for expressing a coding block prediction mode.

FIG. 13 is a diagram showing correspondence between a syntax elementrelated to inter prediction and a mode.

FIG. 14 is an explanatory diagram showing affine motion compensation oftwo control points.

FIG. 15 is an explanatory diagram showing affine motion compensation ofthree control points.

FIG. 16 is a block diagram of a detailed configuration of an interprediction unit 102 of FIG. 1 .

FIG. 17 is a block diagram of a detailed configuration of a normalmotion vector predictor mode derivation unit 301 of FIG. 16 .

FIG. 18 is a block diagram of a detailed configuration of a normal mergemode derivation unit 302 of FIG. 16 .

FIG. 19 is an explanatory flowchart showing a normal motion vectorpredictor mode derivation process of the normal motion vector predictormode derivation unit 301 of FIG. 16 .

FIG. 20 is a flowchart showing a processing procedure of the normalmotion vector predictor mode derivation process.

FIG. 21 is an explanatory flowchart showing a processing procedure of anormal merge mode derivation process.

FIG. 22 is a block diagram of a detailed configuration of an interprediction unit 203 of FIG. 2 .

FIG. 23 is a block diagram of a detailed configuration of a normalmotion vector predictor mode derivation unit 401 of FIG. 22 .

FIG. 24 is a block diagram of a detailed configuration of a normal mergemode derivation unit 402 of FIG. 22 .

FIG. 25 is an explanatory flowchart showing a normal motion vectorpredictor mode derivation process of the normal motion vector predictormode derivation unit 401 of FIG. 22 .

FIG. 26 is an explanatory diagram showing a processing procedure ofinitializing/updating a history-based motion vector predictor candidatelist.

FIG. 27 is a flowchart of an identical element checking processingprocedure in the processing procedure of initializing/updating ahistory-based motion vector predictor candidate list.

FIG. 28 is a flowchart of an element shift processing procedure in theprocessing procedure of initializing/updating a history-based motionvector predictor candidate list.

FIG. 29 is an explanatory flowchart showing a history-based motionvector predictor candidate derivation processing procedure.

FIG. 30 is an explanatory flowchart showing a history-based mergingcandidate derivation processing procedure.

FIG. 31A is an explanatory diagram showing an example of a history-basedmotion vector predictor candidate list update process.

FIG. 31B is an explanatory diagram showing an example of a history-basedmotion vector predictor candidate list update process.

FIG. 31C is an explanatory diagram showing an example of a history-basedmotion vector predictor candidate list update process.

FIG. 32 is an explanatory diagram showing motion-compensated predictionwhen a clock time of a reference picture (RefL0Pic) of L0 is earlierthan that of a target picture (CurPic) as L0-prediction.

FIG. 33 is an explanatory diagram showing motion-compensated predictionwhen a clock time of a reference picture of L0-prediction is later thanthat of a target picture as L0-prediction.

FIG. 34 is an explanatory diagram showing a prediction direction ofmotion-compensated prediction when a clock time of a reference pictureof L0-prediction is earlier than that of a target picture and a clocktime of a reference picture of L1-prediction is later than that of atarget picture as bi-prediction.

FIG. 35 is an explanatory diagram showing a prediction direction ofmotion-compensated prediction when a clock time of a reference pictureof L0-prediction and a clock time of a reference picture ofL1-prediction are earlier than that of a target picture asbi-prediction.

FIG. 36 is an explanatory diagram showing a prediction direction ofmotion-compensated prediction when a clock time of a reference pictureof L0-prediction and a clock time of a reference picture ofL1-prediction are later than that of a target picture as bi-prediction.

FIG. 37 is an explanatory diagram showing an example of a hardwareconfiguration of a coding/decoding device according to an embodiment ofthe present invention.

FIG. 38 is a block diagram of a subblock-based motion vector predictormode derivation unit 303 in the coding device of the presentapplication.

FIG. 39 is a block diagram of a subblock-based motion vector predictormode derivation unit 403 in the decoding device of the presentapplication.

FIG. 40 is a block diagram of a subblock-based merge mode derivationunit 304 in the coding device of the present application.

FIG. 41 is a block diagram of a subblock-based merge mode derivationunit 404 in the decoding device of the present application.

FIG. 42 is an explanatory diagram showing affine inheritance motionvector predictor candidate derivation.

FIG. 43 is an explanatory diagram showing affine construction motionvector predictor candidate derivation.

FIG. 44 is an explanatory diagram showing affine inheritance mergingcandidate derivation.

FIG. 45 is a diagram showing affine construction merging candidatederivation.

FIG. 46 is a flowchart for describing affine inheritance motion vectorpredictor candidate derivation.

FIG. 47 is a flowchart for describing affine construction motion vectorpredictor candidate derivation.

FIG. 48 is a flowchart for describing affine inheritance mergingcandidate derivation.

FIG. 49 is a flowchart for describing affine construction mergingcandidate derivation.

FIG. 50 is a flowchart for describing an operation of a subblock-basedtemporal merging candidate derivation unit 381.

FIG. 51 is a flowchart for describing a process of deriving neighboringmotion information of blocks.

FIG. 52 is a flowchart for describing a temporal motion vectorderivation process.

FIG. 53 is a flowchart for describing inter prediction informationderivation.

FIG. 54 is a flowchart for describing a subblock motion informationderivation process.

FIG. 55 is an explanatory diagram showing a temporal contextrelationship between pictures.

FIG. 56 is a flowchart for describing a temporal motion vector predictorcandidate derivation process of a normal motion vector predictor modederivation unit 301.

FIG. 57 is a flowchart for describing a ColPic derivation process in thetemporal motion vector predictor candidate derivation process of thenormal motion vector predictor mode derivation unit 301.

FIG. 58 is a flowchart for describing a ColPic coding informationderivation process in the temporal motion vector predictor candidatederivation process of the normal motion vector predictor mode derivationunit 301.

FIG. 59 is a flowchart for describing an inter prediction informationderivation process.

FIG. 60 is a flowchart showing a processing procedure for deriving interprediction information of a coded block when the inter prediction modeof a coding block colCb is bi-prediction (Pred_BI).

FIG. 61 is a flowchart for describing a motion vector scaling operationprocessing procedure.

FIG. 62 is a flowchart for describing a temporal merging candidatederivation process.

FIG. 63 is a diagram showing comparative targets of motion informationin affine construction merging candidate derivation.

DETAILED DESCRIPTION OF THE INVENTION

Technology and technical terms used in the embodiment will be defined.

<Tree Block>

In the embodiment, a coding/decoding target picture is equally dividedinto units of a predetermined size. This unit is defined as a treeblock. Although the size of the tree block is 128×128 samples in FIG. 4, the size of the tree block is not limited thereto and any size may beset. The tree block of a target (corresponding to a coding target in acoding process or a decoding target in the decoding process) is switchedin a raster scan order, i.e., from left to right and from top to bottom.The inside of each tree block can be further recursively divided. Ablock which is a coding/decoding target after the tree block isrecursively divided is defined as a coding block. Also, a tree block anda coding block are collectively defined as blocks. Efficient coding isenabled by performing appropriate block split. The tree block size maybe a fixed value predetermined by the coding device and the decodingdevice or the tree block size determined by the coding device may beconfigured to be transmitted to the decoding device. Here, a maximumsize of the tree block is 128×128 samples and a minimum size of the treeblock is 16×16 samples. Also, a maximum size of the coding block is64×64 samples and a minimum size of the coding block is 4×4 samples.

<Prediction Mode>

Switching is performed between intra prediction (MODE_INTRA) in whichprediction is performed from a processed picture signal of the targetpicture and inter prediction (MODE_INTER) in which prediction isperformed from a picture signal of a processed picture in units oftarget coding blocks.

The processed picture is used for a picture, a picture signal, a treeblock, a block, a coding block, and the like obtained by decoding asignal completely coded in the coding process and is used for a picture,a picture signal, a tree block, a block, a coding block, and the likeobtained by completing decoding in a decoding process.

The mode in which the intra prediction (MODE_INTRA) and the interprediction (MODE_INTER) are identified is defined as the prediction mode(PredMode). The prediction mode (PredMode) has intra prediction(MODE_INTRA) or inter prediction (MODE_INTER) as a value.

<Inter Prediction>

In inter prediction in which prediction is performed from a picturesignal of a processed picture, a plurality of processed pictures can beused as reference pictures. In order to manage a plurality of referencepictures, two types of reference lists of L0 (reference list 0) and L1(reference list 1) are defined and a reference picture is identifiedusing each reference index. In a P slice, L0-prediction (Pred_L0) can beused. In a B slice, L0-prediction (Pred_L0), L1-prediction (Pred_L1),and bi-prediction (Pred_BI) can be used. The L0-prediction (Pred_L0) isinter prediction that refers to a reference picture managed in L0 andthe L1-prediction (Pred_L1) is inter prediction that refers to areference picture managed in L1. The bi-prediction (Pred_BI) is interprediction in which both the L0-prediction and the L1-prediction areperformed and one reference picture managed in each of L0 and L1 isreferred to. Information for identifying the L0-prediction, theL1-prediction, and the bi-prediction is defined as an inter predictionmode. In the subsequent processing, constants and variables with thesubscript LX in the output are assumed to be processed for each of L0and L1.

<Motion Vector Predictor Mode>

The motion vector predictor mode is a mode for transmitting an index foridentifying a motion vector predictor, a motion vector difference, aninter prediction mode, and a reference index and determining interprediction information of a target block. The motion vector predictor isderived from a motion vector predictor candidate derived from aprocessed block neighboring the target block or a block located at thesame position as or in the vicinity of (near) the target block amongblocks belonging to the processed picture and an index for identifying amotion vector predictor.

<Merge Mode>

The merge mode is a mode in which inter prediction information of atarget block is derived from inter prediction information of a processedblock neighboring a target block or a block located at the same positionas or in the vicinity of (near) the target block among blocks belongingto the processed picture without transmitting a motion vector differenceand a reference index.

The processed block neighboring the target block and the interprediction information of the processed block are defined as spatialmerging candidates. The block located at the same position as or in thevicinity of (near) the target block among the blocks belonging to theprocessed picture and inter prediction information derived from theinter prediction information of the block are defined as temporalmerging candidates. Each merging candidate is registered in a mergingcandidate list, and a merging candidate used for prediction of a targetblock is identified by a merge index.

<Neighboring Block>

FIG. 11 is an explanatory diagram showing a reference block that isreferred to in deriving inter prediction information in the motionvector predictor mode and the merge mode. A0, A1, A2, B0, B1, B2, and B3are processed blocks neighboring the target block. T0 is a block locatedat the same position as or in the vicinity of (near) the target block inthe target picture among blocks belonging to the processed picture.

A1 and A2 are blocks located on the left side of the target coding blockand neighboring the target coding block. B1 and B3 are blocks located onthe upper side of the target coding block and neighboring the targetcoding block. A0, B0, and B2 are blocks located at the lower left, upperright, and upper left of the target coding block, respectively.

Details of how to handle neighboring blocks in the motion vectorpredictor mode and the merge mode will be described below.

<Affine Motion Compensation>

The affine motion compensation is a process of performing motioncompensation by dividing a coding block into subblocks of apredetermined unit and individually determining a motion vector for eachof the subblocks into which the coding block is divided. The motionvector of each subblock is derived on the basis of one or more controlpoints derived from inter prediction information of a processed blockneighboring the target block or a block located at the same position asor in the vicinity of (near) the target block among blocks belonging tothe processed picture. Although the size of the subblock is 4×4 samplesin the present embodiment, the size of the subblock is not limitedthereto and a motion vector may be derived in units of samples.

An example of affine motion compensation in the case of two controlpoints is shown in FIG. 14 . In this case, the two control points havetwo parameters of a horizontal direction component and a verticaldirection component. Thus, an affine transform in the case of twocontrol points is referred to as a four-parameter affine transform. CP1and CP2 of FIG. 14 are control points.

An example of affine motion compensation in the case of three controlpoints is shown in FIG. 15 . In this case, the three control points havetwo parameters of a horizontal direction component and a verticaldirection component. Thus, an affine transform in the case of threecontrol points is referred to as a six-parameter affine transform. CP1,CP2, and CP3 of FIG. 15 are control points.

Affine motion compensation can be used in both the motion vectorpredictor mode and the merge mode. A mode in which the affine motioncompensation is applied in the motion vector predictor mode is definedas a subblock-based motion vector predictor mode, and a mode in whichthe affine motion compensation is applied in the merge mode is definedas a subblock-based merge mode.

<Inter Prediction Syntax>

The syntax related to inter prediction will be described using FIGS. 12and 13 .

The flag merge_flag in FIG. 12 indicates whether the target coding blockis set to the merge mode or the motion vector predictor mode. The flagmerge_affine_flag indicates whether or not the subblock-based merge modeis applied to the target coding block of the merge mode. The flaginter_affine_flag indicates whether or not to apply the subblock-basedmotion vector predictor mode to the target coding block of the motionvector predictor mode. The flag cu_affine_type_flag is used to determinethe number of control points in the subblock-based motion vectorpredictor mode.

FIG. 13 shows a value of each syntax element and a prediction methodcorresponding thereto. The normal merge mode corresponds to merge_flag=1and merge_affine_flag=0 and is not a subblock-based merge mode. Thesubblock-based merge mode corresponds to merge_flag=1 andmerge_affine_flag=1. The normal motion vector predictor mode correspondsto merge_flag=0 and inter_affine_flag=0. The normal motion vectorpredictor mode is a motion vector predictor merge mode that is not asubblock-based motion vector predictor mode. The subblock-based motionvector predictor mode corresponds to merge_flag=0 andinter_affine_flag=1. When merge_flag=0 and inter_affine_flag=1,cu_affine_type_flag is further transmitted to determine the number ofcontrol points.

<POC>

A picture order count (POC) is a variable associated with a picture tobe coded and is set to a value that is incremented by 1 according to anoutput order of pictures. According to the POC value, it is possible todiscriminate whether pictures are the same, to discriminate ananteroposterior relationship between pictures in the output order, or toderive the distance between pictures. For example, if the POCs of twopictures have the same value, it can be determined that they are thesame picture. When the POCs of two pictures have different values, itcan be determined that the picture with the smaller POC value is thepicture to be output first. A difference between the POCs of the twopictures indicates an inter-picture distance in a time axis direction.

First Embodiment

The picture coding device 100 and the picture decoding device 200according to the first embodiment of the present invention will bedescribed.

FIG. 1 is a block diagram of a picture coding device 100 according tothe first embodiment. The picture coding device 100 according to theembodiment includes a block split unit 101, an inter prediction unit102, an intra prediction unit 103, a decoded picture memory 104, aprediction method determination unit 105, a residual generation unit106, an orthogonal transform/quantization unit 107, a bit strings codingunit 108, an inverse quantization/inverse orthogonal transform unit 109,a decoding picture signal superimposition unit 110, and a codinginformation storage memory 111.

The block split unit 101 recursively divides the input picture togenerate a coding block. The block split unit 101 includes a quad splitunit that divides a split target block in the horizontal direction andthe vertical direction and a binary-ternary split unit that divides thesplit target block in either the horizontal direction or the verticaldirection. The block split unit 101 sets the generated coding block as atarget coding block and supplies a picture signal of the target codingblock to the inter prediction unit 102, the intra prediction unit 103,and the residual generation unit 106. Also, the block split unit 101supplies information indicating a determined recursive split structureto the bit strings coding unit 108. The detailed operation of the blocksplit unit 101 will be described below.

The inter prediction unit 102 performs inter prediction of the targetcoding block. The inter prediction unit 102 derives a plurality of interprediction information candidates from the inter prediction informationstored in the coding information storage memory 111 and the decodedpicture signal stored in the decoded picture memory 104, selects asuitable inter prediction mode from the plurality of derived candidates,and supplies the selected inter prediction mode and a predicted picturesignal according to the selected inter prediction mode to the predictionmethod determination unit 105. A detailed configuration and operation ofthe inter prediction unit 102 will be described below.

The intra prediction unit 103 performs intra prediction of the targetcoding block. The intra prediction unit 103 refers to a decoded picturesignal stored in the decoded picture memory 104 as a reference sampleand generates a predicted picture signal according to intra predictionbased on coding information such as an intra prediction mode stored inthe coding information storage memory 111. In the intra prediction, theintra prediction unit 103 selects a suitable intra prediction mode fromamong a plurality of intra prediction modes and supplies a selectedintra prediction mode and a predicted picture signal according to theselected intra prediction mode to the prediction method determinationunit 105.

Examples of intra prediction are shown in FIGS. 10A and 10B. FIG. 10Ashows the correspondence between a prediction direction of intraprediction and an intra prediction mode number. For example, in intraprediction mode 50, an intra prediction picture is generated by copyingreference samples in the vertical direction. Intra prediction mode 1 isa DC mode and is a mode in which all sample values of the target blockare an average value of reference samples. Intra prediction mode 0 is aplanar mode and is a mode for creating a two-dimensional intraprediction picture from reference samples in the vertical and horizontaldirections. FIG. 10B is an example in which an intra prediction pictureis generated in the case of intra prediction mode 40. The intraprediction unit 103 copies the value of the reference sample in thedirection indicated by the intra prediction mode with respect to eachsample of the target block. When the reference sample of the intraprediction mode is not at an integer position, the intra prediction unit103 determines a reference sample value according to an interpolationfrom reference sample values of neighboring integer positions.

The decoded picture memory 104 stores a decoded picture generated by thedecoding picture signal superimposition unit 110. The decoded picturememory 104 supplies the stored decoded picture to the inter predictionunit 102 and the intra prediction unit 103.

The prediction method determination unit 105 determines the optimumprediction mode by evaluating each of intra prediction and interprediction using coding information, a residual code amount, an amountof distortion between a predicted picture signal and a target picturesignal, and the like. In the case of intra prediction, the predictionmethod determination unit 105 supplies intra prediction information suchas an intra prediction mode as the coding information to the bit stringscoding unit 108. In the case of the inter prediction merge mode, theprediction method determination unit 105 supplies inter predictioninformation such as a merge index and information indicating whether ornot the mode is a subblock-based merge mode (a subblock-based mergeflag) as the coding information to the bit strings coding unit 108. Inthe case of the motion vector predictor mode of inter prediction, theprediction method determination unit 105 supplies inter predictioninformation such as the inter prediction mode, a motion vector predictorindex, reference indices of L0 and L1, a motion vector difference, andinformation indicating whether or not the mode is a subblock-basedmotion vector predictor mode (a subblock-based motion vector predictorflag) as the coding information to the bit strings coding unit 108.Further, the prediction method determination unit 105 supplies thedetermined coding information to the coding information storage memory111. The prediction method determination unit 105 supplies a predictedpicture signal to the residual generation unit 106 and the decodingpicture signal superimposition unit 110.

The residual generation unit 106 generates a residual by subtracting thepredicted picture signal from the target picture signal and supplies theresidual to the orthogonal transform/quantization unit 107.

The orthogonal transform/quantization unit 107 performs an orthogonaltransform and quantization on the residual in accordance with thequantization parameter to generate an orthogonally transformed/quantizedresidual and supplies the generated residual to the bit strings codingunit 108 and the inverse quantization/inverse orthogonal transform unit109.

The bit strings coding unit 108 codes coding information according tothe prediction method determined by the prediction method determinationunit 105 for each coding block in addition to information of units ofsequences, pictures, slices, and coding blocks. Specifically, the bitstrings coding unit 108 codes the prediction mode PredMode for eachcoding block. When the prediction mode is inter prediction (MODE_INTER),the bit strings coding unit 108 codes coding information (interprediction information) such as a flag for discriminating whether or notthe mode is a merge mode, a subblock-based merge flag, a merge indexwhen the mode is the merge mode, an inter prediction mode when the modeis not the merge mode, a motion vector predictor index, informationabout a motion vector difference, and a subblock-based motion vectorpredictor flag in accordance with specified syntax (a bit strings syntaxrule) and generates first bit strings. When the prediction mode is intraprediction (MODE_INTRA), coding information (intra predictioninformation) such as the intra prediction mode is coded in accordancewith specified syntax (a bit strings syntax rule) and first bit stringsis generated. Also, the bit strings coding unit 108 entropy-codes theorthogonally transformed and quantized residual in accordance withspecified syntax to generate second bit strings. The bit strings codingunit 108 multiplexes the first bit strings and the second bit strings inaccordance with specified syntax and outputs a bitstream.

The inverse quantization/inverse orthogonal transform unit 109calculates the residual by performing inverse quantization and aninverse orthogonal transform on the orthogonally transformed/quantizedresidual supplied from the orthogonal transform/quantization unit 107and supplies the calculated residual to the decoding picture signalsuperimposition unit 110.

The decoding picture signal superimposition unit 110 superimposes thepredicted picture signal according to the determination of theprediction method determination unit 105 and the residual inverselyquantized and inversely orthogonally transformed by the inversequantization/inverse orthogonal transform unit 109 to generate a decodedpicture and stores the decoded picture in the decoded picture memory104. Also, the decoding picture signal superimposition unit 110 maystore the decoded picture in the decoded picture memory 104 afterperforming a filtering process of reducing distortion such as blockdistortion due to coding on the decoded picture.

The coding information storage memory 111 stores coding information suchas a prediction mode (inter prediction or intra prediction) determinedby the prediction method determination unit 105. In the case of theinter prediction, the coding information stored in the codinginformation storage memory 111 includes inter prediction informationsuch as a determined motion vector, reference indices of reference listsL0 and L1, and a history-based motion vector predictor candidate list.Also, in the case of the inter prediction merge mode, the codinginformation stored in the coding information storage memory 111 includesinter prediction information such as a merge index and informationindicating whether or not the mode is the subblock-based merge mode (asubblock-based merge flag) in addition to the above-describedinformation. Also, in the case of the motion vector predictor mode ofthe inter prediction, the coding information stored in the codinginformation storage memory 111 includes inter prediction informationsuch as an inter prediction mode, a motion vector predictor index, amotion vector difference, and information indicating whether or not themode is the subblock-based motion vector predictor mode (asubblock-based motion vector predictor flag) in addition to theabove-described information. In the case of the intra prediction, thecoding information stored in the coding information storage memory 111includes intra prediction information such as the determined intraprediction mode.

FIG. 2 is a block diagram showing a configuration of the picturedecoding device according to the embodiment of the present inventioncorresponding to the picture coding device of FIG. 1 . The picturedecoding device according to the embodiment includes a bit stringsdecoding unit 201, a block split unit 202, an inter prediction unit 203,an intra prediction unit 204, a coding information storage memory 205,an inverse quantization/inverse orthogonal transform unit 206, adecoding picture signal superimposition unit 207, and a decoded picturememory 208.

Because a decoding process of the picture decoding device of FIG. 2corresponds to a decoding process provided in the picture coding deviceof FIG. 1 , the components of the coding information storage memory 205,the inverse quantization/inverse orthogonal transform unit 206, thedecoding picture signal superimposition unit 207, and the decodedpicture memory 208 of FIG. 2 have functions corresponding to thecomponents of the coding information storage memory 111, the inversequantization/inverse orthogonal transform unit 109, the decoding picturesignal superimposition unit 110, and the decoded picture memory 104 ofthe picture coding device of FIG. 1 .

A bitstream supplied to the bit strings decoding unit 201 is separatedin accordance with a specified syntax rule. The bit strings decodingunit 201 decodes a separated first bit string, and obtains informationof units of sequences, pictures, slices, coding blocks and codinginformation of units of coding blocks. Specifically, the bit stringsdecoding unit 201 decodes a prediction mode PredMode for discriminatinginter prediction (MODE_INTER) or intra prediction (MODE_INTRA) in unitsof coding blocks. When the prediction mode is inter prediction(MODE_INTER), the bit strings decoding unit 201 decodes codinginformation (inter prediction information) about a flag fordiscriminating whether or not the mode is a merge mode, a merge indexwhen the mode is the merge mode, a subblock-based merge flag, an interprediction mode when the mode is a motion vector predictor mode, amotion vector predictor index, a motion vector difference, asubblock-based motion vector predictor flag, and the like in accordancewith specified syntax and supplies the coding information (the interprediction information) to the coding information storage memory 205 viathe inter prediction unit 203 and the block split unit 202. When theprediction mode is intra prediction (MODE_INTRA), coding information(intra prediction information) such as the intra prediction mode isdecoded in accordance with specified syntax and the coding information(the intra prediction information) is supplied to the coding informationstorage memory 205 via the inter prediction unit 203 or the intraprediction unit 204 and the block split unit 202. The bit stringsdecoding unit 201 decodes separated second bit strings to calculate anorthogonally transformed/quantized residual and supplies theorthogonally transformed/quantized residual to the inversequantization/inverse orthogonal transform unit 206.

When the prediction mode PredMode of the target coding block is themotion vector predictor mode in the inter prediction (MODE_INTER), theinter prediction unit 203 derives a plurality of motion vector predictorcandidates using coding information of the previously decoded picturesignal stored in the coding information storage memory 205 and registersthe plurality of derived motion vector predictor candidates in themotion vector predictor candidate list to be described below. The interprediction unit 203 selects a motion vector predictor according to themotion vector predictor index decoded and supplied by the bit stringsdecoding unit 201 from among the plurality of motion vector predictorcandidates registered in the motion vector predictor candidate list,calculates a motion vector from the motion vector difference decoded bythe bit strings decoding unit 201 and the selected motion vectorpredictor, and stores the calculated motion vector in the codinginformation storage memory 205 together with other coding information.The coding information of the coding block supplied/stored here is aprediction mode PredMode, flags predFlagL0[xP][yP] andpredFlagL1[xP][yP] indicating whether or not to use L0-prediction andL1-prediction, reference indices refIdxL0[xP][yP] and refIdxL1[xP][yP]of L0 and L1, motion vectors mvL0[xP][yP] and mvL1[xP][yP] of L0 and L1,and the like. Here, xP and yP are indices indicating a position of anupper left sample of the coding block within the picture. When theprediction mode PredMode is inter prediction (MODE_INTER) and the interprediction mode is L0-prediction (Pred_L0), the flag predFlagL0indicating whether or not to use L0-prediction is 1, and the flagpredFlagL1 indicating whether or not to use L1-prediction is 0. When theinter prediction mode is L1-prediction (Pred_L1), the flag predFlagL0indicating whether or not to use L0-prediction is 0 and the flagpredFlagL1 indicating whether or not to use L1-prediction is 1. When theinter prediction mode is bi-prediction (Pred_BI), both the flagpredFlagL0 indicating whether or not to use L0-prediction and the flagpredFlagL1 indicating whether or not to use L1-prediction are 1.Further, merging candidates are derived in the merge mode in which theprediction mode PredMode of the coding block of the target is interprediction (MODE_INTER). A plurality of merging candidates are derivedusing the coding information of the previously decoded coding blocksstored in the coding information storage memory 205 and are registeredin a merging candidate list to be described below, a merging candidatecorresponding to a merge index to be decoded and supplied by the bitstrings decoding unit 201 is selected from among the plurality ofmerging candidates registered in the merging candidate list, and interprediction information such as the flags predFlagL0[xP][yP] andpredFlagL1[xP][yP] indicating whether or not to use L0-prediction andL1-prediction of the selected merging candidate, the reference indicesrefIdxL0[xP][yP] and refIdxL1[xP][yP] of L0 and L1, and the motionvectors mvL0[xP][yP] and mvL1[xP][yP] of L0 and L1 is stored in thecoding information storage memory 205. Here, xP and yP are indicesindicating the position of the upper left sample of the coding block inthe picture. A detailed configuration and operation of the interprediction unit 203 will be described below.

The intra prediction unit 204 performs intra prediction when theprediction mode PredMode of the coding block of the target is intraprediction (MODE_INTRA). The coding information decoded by the bitstrings decoding unit 201 includes an intra prediction mode. The intraprediction unit 204 generates a predicted picture signal according tointra prediction from the decoded picture signal stored in the decodedpicture memory 208 in accordance with the intra prediction mode includedin the coding information decoded by the bit strings decoding unit 201and supplies the generated predicted picture signal to the decodingpicture signal superimposition unit 207. Because the intra predictionunit 204 corresponds to the intra prediction unit 103 of the picturecoding device 100, a process similar to that of the intra predictionunit 103 is performed.

The inverse quantization/inverse orthogonal transform unit 206 performsan inverse orthogonal transform and inverse quantization on theorthogonally transformed/quantized residual decoded by the bit stringsdecoding unit 201 and obtains the inversely orthogonallytransformed/inversely quantized residual.

The decoding picture signal superimposition unit 207 decodes a decodingpicture signal by superimposing a predicted picture signalinter-predicted by the inter prediction unit 203 or a predicted picturesignal intra-predicted by the intra prediction unit 204 and the residualinversely orthogonally transformed/inversely quantized by the inversequantization/inverse orthogonal transform unit 206 and stores thedecoded decoding picture signal in the decoded picture memory 208. Atthe time of storage in the decoded picture memory 208, the decodingpicture signal superimposition unit 207 may store a decoded picture inthe decoded picture memory 208 after a filtering process of reducingblock distortion or the like due to coding is performed on the decodedpicture.

Next, an operation of the block split unit 101 in the picture codingdevice 100 will be described. FIG. 3 is a flowchart showing an operationof dividing a picture into tree blocks and further dividing each treeblock. First, an input picture is divided into tree blocks having apredetermined size (step S1001). Each tree block is scanned in apredetermined order, i.e., raster scan order (step S1002), and theinside of the tree block of a target is divided (step S1003).

FIG. 7 is a flowchart showing a detailed operation of a split process ofstep S1003. First, it is determined whether or not a target block willbe divided into four parts (step S1101).

When it is determined that the target block will be divided into fourparts, the target block is divided into four parts (step S1102). Eachblock obtained by dividing the target block is scanned in a Z-scanorder, i.e., in the order of upper left, upper right, lower left, andlower right (step S1103). FIG. 5 shows an example of the Z-scan order,and reference numeral 601 of FIG. 6A shows an example in which thetarget block is divided into four parts. Numbers 0 to 3 of referencenumeral 601 of FIG. 6A indicate the order of processing. Then, the splitprocess of FIG. 7 is recursively executed for each block from thedivision in step S1101 (step S1104).

When it is determined that the target block will not be divided intofour parts, a binary-ternary split is performed (step S1105).

FIG. 8 is a flowchart showing the detailed operation of a binary-ternarysplit process of step S1105. First, it is determined whether or not atarget block will be divided into two or three parts, i.e., whether ornot either a binary or ternary split will be performed (step S1201).

When it is not determined that the target block will be divided into twoor three parts, i.e., when it is determined that the target block willnot be divided, the split ends (step S1211). That is, a recursive splitprocess is not further performed on blocks divided according to therecursive split process.

When it is determined that the target block will be divided into two orthree parts, it is further determined whether or not the target blockwill be divided into two parts (step S1202).

When it is determined that the target block will be divided into twoparts, it is determined whether or not the target block will be dividedinto upper and lower parts (in a vertical direction) (step S1203). Onthe basis of a determination result, the target block is divided intotwo parts that are upper and lower parts (in the vertical direction)(step S1204) or the target block is divided into two parts that are leftand right parts (in a horizontal direction) (step S1205). As a result ofstep S1204, the target block is divided into two parts that are upperand lower parts (in the vertical direction) as indicated by referencenumeral 602 in FIG. 6B. As a result of step S1205, the target block isdivided into two parts that are left and right parts (in the horizontaldirection) as indicated by reference numeral 604 of FIG. 6D.

When it is not determined that the target block will be divided into twoparts, i.e., when it is determined that the target block will be dividedinto three parts, in step S1202, it is determined whether or not thetarget block will be divided into upper, middle, and lower parts (in thevertical direction) (step S1206). On the basis of a determinationresult, the target block is divided into three parts that are upper,middle and lower parts (in the vertical direction) (step S1207) or thetarget block is divided into three parts that are left, middle, andright parts (in the horizontal direction) (step S1208). As a result ofstep S1207, the target block is divided into three parts that are upper,middle, and lower parts (in the vertical direction) as indicated byreference numeral 603 of FIG. 6C. As a result of step S1208, the targetblock is divided into three parts that are left, middle, and right parts(in the horizontal direction) as indicated by reference numeral 605 ofFIG. 6E.

After any one of steps S1204, S1205, S1207, and S1208 is executed, eachof blocks into which the target block is divided is scanned in orderfrom left to right and from top to bottom (step S1209). Numbers 0 to 2of reference numerals 602 to 605 of FIGS. 6B to 6E indicate the order ofprocessing. For each of the blocks into which the target block isdivided, a binary-ternary split process of FIG. 8 is recursivelyexecuted (step S1210).

The recursive block split described here may limit the necessity of asplit according to the number of splits or a size of the target block orthe like. Information that limits the necessity of a split may beimplemented by a configuration in which information is not delivered bymaking an agreement between the coding device and the decoding device inadvance or implemented by a configuration in which the coding devicedetermines information that limits the necessity of a split, records theinformation in a bit string, and delivers the information to thedecoding device.

When a certain block is divided, a block before the split is referred toas a parent block and each block after the split is referred to as achild block.

Next, an operation of the block split unit 202 in the picture decodingdevice 200 will be described. The block split unit 202 divides the treeblock according to a processing procedure similar to that of the blocksplit unit 101 of the picture coding device 100. However, there is adifference in that the block split unit 101 of the picture coding device100 applies an optimization technique such as estimation of an optimumshape based on picture recognition or distortion rate optimization todetermine an optimum block split shape, whereas the block split unit 202of the picture decoding device 200 determines a block split shape bydecoding the block split information recorded in the bit string.

Syntax (a bit strings syntax rule) related to a block split according tothe first embodiment is shown in FIG. 9 . coding_quadtree( ) representssyntax related to a quad split process on the block. multi_type_tree( )represents syntax related to a binary or ternary split process on ablock. qt_split is a flag indicating whether or not a block is dividedinto four parts. qt_split=1 when the block is divided into four partsand qt_split=0 when the block is not divided into four parts. When theblock is divided into four parts (qt_split=1), a quad split process isrecursively performed on blocks, each of which has been divided intofour parts (coding quadtree(0), coding_quadtree(1), coding_quadtree(2),coding_quadtree(3), and arguments 0 to 3 correspond to numbers indicatedby reference numeral 601 of FIG. 6A). When the block is not divided intofour parts (qt_split=0), the subsequent split is determined according tomulti_type_tree( ). mtt_split is a flag indicating whether or not asplit is further performed. When a split is further performed(mtt_split=1), mtt_split_vertical which is a flag indicating whether theblock is divided vertically or horizontally and mtt_split_binary whichis a flag for determining whether a binary or ternary split is performedare transmitted. mtt_split_vertical=1 indicates a split in the verticaldirection and mtt_split_vertical=0 indicates a split in the horizontaldirection. mtt_split_binary=1 indicates a binary split andmtt_split_binary=0 indicates a ternary split. In the binary split(mtt_split_binary=1), a split process is recursively performed onblocks, each of which is divided into two parts (multi_type_tree(0),multi_type_tree(1), and arguments 0 to 1 correspond to numbers indicatedby reference numeral 602 or 604 in FIGS. 6B to 6D). In the case of theternary split (mtt_split_binary=0), a split process is recursivelyperformed on blocks, each of which is divided into three parts(multi_type_tree(0), multi_type_tree(1), multi_type_tree(2), andarguments 0 to 2 correspond to numbers indicated by reference numeral603 of FIG. 6B or numbers indicated by reference numeral 605 of FIG.6E). Until mtt_split=0 is reached, a hierarchical block split isperformed by recursively calling multi_type_tree.

<Inter Prediction>

An inter prediction method according to the embodiment is performed inthe inter prediction unit 102 of the picture coding device of FIG. 1 andthe inter prediction unit 203 of the picture decoding device of FIG. 2 .

The inter prediction method according to the embodiment will bedescribed with reference to the drawings. The inter prediction method isperformed in both coding and decoding processes in units of codingblocks.

<Description of Inter Prediction Unit 102 of Coding Side>

FIG. 16 is a diagram showing a detailed configuration of the interprediction unit 102 of the picture coding device in FIG. 1 . The normalmotion vector predictor mode derivation unit 301 derives a plurality ofnormal motion vector predictor candidates to select a motion vectorpredictor, and calculates a motion vector difference between theselected motion vector predictor and a detected motion vector. Adetected inter prediction mode, reference index, and motion vector andthe calculated motion vector difference become inter predictioninformation of the normal motion vector predictor mode. This interprediction information is supplied to the inter prediction modedetermination unit 305. A detailed configuration and a process of thenormal motion vector predictor mode derivation unit 301 will bedescribed below.

The normal merge mode derivation unit 302 derives a plurality of normalmerging candidates to select a normal merging candidate and obtainsinter prediction information of the normal merge mode. This interprediction information is supplied to the inter prediction modedetermination unit 305. A detailed configuration and a process of thenormal merge mode derivation unit 302 will be described below.

A subblock-based motion vector predictor mode derivation unit 303derives a plurality of subblock-based motion vector predictor candidatesto select a subblock-based motion vector predictor and calculates amotion vector difference between the selected subblock-based motionvector predictor and the detected motion vector. A detected interprediction mode, reference index, and motion vector and the calculatedmotion vector difference become the inter prediction information of thesubblock-based motion vector predictor mode. This inter predictioninformation is supplied to the inter prediction mode determination unit305.

The subblock-based merge mode derivation unit 304 derives a plurality ofsubblock-based merging candidates to select a subblock-based mergingcandidate, and obtains inter prediction information of thesubblock-based merge mode. This inter prediction information is suppliedto the inter prediction mode determination unit 305.

The inter prediction mode determination unit 305 determines interprediction information on the basis of the inter prediction informationsupplied from the normal motion vector predictor mode derivation unit301, the normal merge mode derivation unit 302, the subblock-basedmotion vector predictor mode derivation unit 303, and the subblock-basedmerge mode derivation unit 304. Inter prediction information accordingto the determination result is supplied from the inter prediction modedetermination unit 305 to the motion-compensated prediction unit 306.

The motion-compensated prediction unit 306 performs inter prediction onthe reference picture signal stored in the decoded picture memory 104 onthe basis of the determined inter prediction information. A detailedconfiguration and a process of the motion-compensated prediction unit306 will be described below.

<Description of Inter Prediction Unit 203 of Decoding Side>

FIG. 22 is a diagram showing a detailed configuration of the interprediction unit 203 of the picture decoding device of FIG. 2 .

A normal motion vector predictor mode derivation unit 401 derives aplurality of normal motion vector predictor candidates to select amotion vector predictor, calculates a sum of the selected motion vectorpredictor and the decoded motion vector difference, and sets thecalculated sum as a motion vector. A decoded inter prediction mode,reference index, and motion vector become inter prediction informationof the normal motion vector predictor mode. This inter predictioninformation is supplied to a motion-compensated prediction unit 406 viathe switch 408. A detailed configuration and a process of the normalmotion vector predictor mode derivation unit 401 will be describedbelow.

A normal merge mode derivation unit 402 derives a plurality of normalmerging candidates to select a normal merging candidate and obtainsinter prediction information of the normal merge mode. This interprediction information is supplied to the motion-compensated predictionunit 406 via the switch 408. A detailed configuration and a process ofthe normal merge mode derivation unit 402 will be described below.

A subblock-based motion vector predictor mode derivation unit 403derives a plurality of subblock-based motion vector predictor candidatesto select a subblock-based motion vector predictor, calculates a sum ofthe selected subblock-based motion vector predictor and the decodedmotion vector difference, and sets the calculated sum as a motionvector. A decoded inter prediction mode, reference index, and motionvector become the inter prediction information of the subblock-basedmotion vector predictor mode. This inter prediction information issupplied to the motion-compensated prediction unit 406 via the switch408.

A subblock-based merge mode derivation unit 404 derives a plurality ofsubblock-based merging candidates to select a subblock-based mergingcandidate and obtains inter prediction information of the subblock-basedmerge mode. This inter prediction information is supplied to themotion-compensated prediction unit 406 via the switch 408.

The motion-compensated prediction unit 406 performs inter prediction onthe reference picture signal stored in the decoded picture memory 208 onthe basis of the determined inter prediction information. A detailedconfiguration and a process of the motion-compensated prediction unit406 are similar to those of the motion-compensated prediction unit 306of the coding side.

<Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP)>

The normal motion vector predictor mode derivation unit 301 of FIG. 17includes a spatial motion vector predictor candidate derivation unit321, a temporal motion vector predictor candidate derivation unit 322, ahistory-based motion vector predictor candidate derivation unit 323, amotion vector predictor candidate replenishment unit 325, a normalmotion vector detection unit 326, a motion vector predictor candidateselection unit 327, and a motion vector subtraction unit 328.

The normal motion vector predictor mode derivation unit 401 of FIG. 23includes a spatial motion vector predictor candidate derivation unit421, a temporal motion vector predictor candidate derivation unit 422, ahistory-based motion vector predictor candidate derivation unit 423, amotion vector predictor candidate replenishment unit 425, a motionvector predictor candidate selection unit 426, and a motion vectoraddition unit 427.

Processing procedures of the normal motion vector predictor modederivation unit 301 of the coding side and the normal motion vectorpredictor mode derivation unit 401 of the decoding side will bedescribed using the flowcharts of FIGS. 19 and 25 , respectively. FIG.19 is a flowchart showing a normal motion vector predictor modederivation processing procedure of the normal motion vector predictormode derivation unit 301 of the coding side and FIG. 25 is a flowchartshowing a normal motion vector predictor mode derivation processingprocedure of the normal motion vector predictor mode derivation unit 401of the decoding side.

<Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP):Description of Coding Side>

The normal motion vector predictor mode derivation processing procedureof the coding side will be described with reference to FIG. 19 . In thedescription of the processing procedure of FIG. 19 , the term “normal”shown in FIG. 19 may be omitted.

First, the normal motion vector detection unit 326 detects a normalmotion vector for each inter prediction mode and each reference index(step S100 of FIG. 19 ).

Subsequently, in the spatial motion vector predictor candidatederivation unit 321, the temporal motion vector predictor candidatederivation unit 322, the history-based motion vector predictor candidatederivation unit 323, the motion vector predictor candidate replenishmentunit 325, the motion vector predictor candidate selection unit 327, andthe motion vector subtraction unit 328, a motion vector difference of amotion vector used for inter prediction of the normal motion vectorpredictor mode is calculated for each of L0 and L1 (steps S101 to S106of FIG. 19 ). Specifically, when the prediction mode PredMode of thetarget block is inter prediction (MODE_INTER) and the inter predictionmode is L0-prediction (Pred_L0), the motion vector predictor candidatelist mvpListL0 of L0 is calculated to select the motion vector predictormvpL0 and the motion vector difference mvdL0 of the motion vector mvL0of L0 is calculated. When the inter prediction mode of the target blockis L1-prediction (Pred_L1), the motion vector predictor candidate listmvpListL1 of L1 is calculated to select the motion vector predictormvpL1 and the motion vector difference mvdL1 of the motion vector mvL1of L1 is calculated. When the inter prediction mode of the target blockis bi-prediction (Pred_BI), both L0-prediction and L1-prediction areperformed, the motion vector predictor candidate list mvpListL0 of L0 iscalculated to select a motion vector predictor mvpL0 of L0, the motionvector difference mvdL0 of a motion vector mvL0 of L0 is calculated, themotion vector predictor candidate list mvpListL1 of L1 is calculated toselect a motion vector predictor mvpL1 of L1, and a motion vectordifference mvdL1 of a motion vector mvL1 of L1 is calculated.

Although a motion vector difference calculation process is performed foreach of L0 and L1, the motion vector difference calculation processbecomes a process common to both L0 and L1. Therefore, in the followingdescription, L0 and L1 are represented as common LX. X of LX is 0 in theprocess of calculating the motion vector difference of L0 and X of LX is1 in the process of calculating the motion vector difference of L1.Also, when information of another list instead of LX is referred toduring the process of calculating the motion vector difference of LX,the other list is represented as LY.

When the motion vector mvLX of LX is used (step S102 of FIG. 19 : YES),the motion vector predictor candidates of LX are calculated to constructthe motion vector predictor candidate list mvpListLX of LX (step S103 ofFIG. 19 ). In the spatial motion vector predictor candidate derivationunit 321, the temporal motion vector predictor candidate derivation unit322, the history-based motion vector predictor candidate derivation unit323, and the motion vector predictor candidate replenishment unit 325 ofthe normal motion vector predictor mode derivation unit 301, a pluralityof motion vector predictor candidates are derived to construct themotion vector predictor candidate list mvpListLX. The detailedprocessing procedure of step S103 of FIG. 19 will be described belowusing the flowchart of FIG. 20 .

Subsequently, the motion vector predictor candidate selection unit 327selects a motion vector predictor mvpLX of LX from the motion vectorpredictor candidate list mvpListLX of LX (step S104 of FIG. 19 ). Here,one element (an i^(th) element when counted from a 0th element) in themotion vector predictor candidate list mvpListLX is represented asmvpListLX[i]. Each motion vector difference that is a difference betweenthe motion vector mvLX and each motion vector predictor candidatemvpListLX[i] stored in the motion vector predictor candidate listmvpListLX is calculated. A code amount when the motion vectordifferences are coded is calculated for each element (motion vectorpredictor candidate) of the motion vector predictor candidate listmvpListLX. Then, a motion vector predictor candidate mvpListLX[i] thatminimizes the code amount for each motion vector predictor candidateamong the elements registered in the motion vector predictor candidatelist mvpListLX is selected as the motion vector predictor mvpLX and itsindex i is acquired. When there are a plurality of motion vectorpredictor candidates having the smallest generated code amount in themotion vector predictor candidate list mvpListLX, a motion vectorpredictor candidate mvpListLX[i] represented by a smaller number in theindex i in the motion vector predictor candidate list mvpListLX isselected as an optimum motion vector predictor mvpLX and its index i isacquired.

Subsequently, the motion vector subtraction unit 328 subtracts theselected motion vector predictor mvpLX of LX from the motion vector mvLXof LX and calculates a motion vector difference mvdLX of LX asmvdLX=mvLX−mvpLX (step S105 of FIG. 19 ).

<Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP):Description of Decoding Side>

Next, the normal motion vector predictor mode processing procedure ofthe decoding side will be described with reference to FIG. 25 . On thedecoding side, in the spatial motion vector predictor candidatederivation unit 421, the temporal motion vector predictor candidatederivation unit 422, the history-based motion vector predictor candidatederivation unit 423, and the motion vector predictor candidatereplenishment unit 425, a motion vector for use in inter prediction ofthe normal motion vector predictor mode is calculated for each of L0 andL1 (steps S201 to S206 of FIG. 25 ). Specifically, when the predictionmode PredMode of the target block is inter prediction (MODE_INTER) andthe inter prediction mode of the target block is L0-prediction(Pred_L0), the motion vector predictor candidate list mvpListL0 of L0 iscalculated to select the motion vector predictor mvpL0 and a motionvector mvL0 of L0 is calculated. When the inter prediction mode of thetarget block is L1-prediction (Pred_L1), the motion vector predictorcandidate list mvpListL1 of L1 is calculated to select the motion vectorpredictor mvpL1 and the motion vector mvL1 of L1 is calculated. When theinter prediction mode of the target block is bi-prediction (Pred_BI),both L0-prediction and L1-prediction are performed, the motion vectorpredictor candidate list mvpListL0 of L0 is calculated to select amotion vector predictor mvpL0 of L0, a motion vector mvL0 of L0 iscalculated, the motion vector predictor candidate list mvpListL1 of L1is calculated to select a motion vector predictor mvpL1 of L1, and eachmotion vector mvL1 of L1 is calculated.

Although a motion vector calculation process is performed for each of L0and L1 on the decoding side as on the coding side, the motion vectorcalculation process becomes a process common to both L0 and L1.Therefore, in the following description, L0 and L1 are represented ascommon LX. LX represents an inter prediction mode for use in the interprediction of a target coding block. X is 0 in the process ofcalculating the motion vector of L0 and X is 1 in the process ofcalculating the motion vector of L1. Also, when information of anotherreference list instead of a reference list identical to that of LX of acalculation target is referred to during the process of calculating themotion vector of LX, the other reference list is represented as LY.

When the motion vector mvLX of LX is used (step S202 of FIG. 25 : YES),the motion vector predictor candidates of LX are calculated to constructthe motion vector predictor candidate list mvpListLX of LX (step S203 ofFIG. 25 ). In the spatial motion vector predictor candidate derivationunit 421, the temporal motion vector predictor candidate derivation unit422, the history-based motion vector predictor candidate derivation unit423, and the motion vector predictor candidate replenishment unit 425 ofthe normal motion vector predictor mode derivation unit 401, a pluralityof motion vector predictor candidates are calculated to construct amotion vector predictor candidate list mvpListLX. A detailed processingprocedure of step S203 of FIG. 25 will be described below using theflowchart of FIG. 20 .

Subsequently, the motion vector predictor candidate mvpListLX[mvpIdxLX]corresponding to the index mvpIdxLX of the motion vector predictordecoded and supplied by the bit strings decoding unit 201 from themotion vector predictor candidate list mvpListLX is extracted as aselected motion vector predictor mvpLX in the motion vector predictorcandidate selection unit 426 (step S204 of FIG. 25 ).

Subsequently, the motion vector addition unit 427 sums the motion vectordifference mvdLX of LX that is decoded and supplied by the bit stringsdecoding unit 201 and the motion vector predictor mvpLX of LX andcalculates the motion vector mvLX of LX as mvLX=mvpLX+mvdLX (step S205of FIG. 25 ).

<Normal Motion Vector Predictor Mode Derivation Unit (Normal AMVP):Motion Vector Prediction Method>

FIG. 20 is a flowchart showing a processing procedure of a normal motionvector predictor mode derivation process having a function common to thenormal motion vector predictor mode derivation unit 301 of the picturecoding device and the normal motion vector predictor mode derivationunit 401 of the picture decoding device according to the embodiment ofthe present invention.

The normal motion vector predictor mode derivation unit 301 and thenormal motion vector predictor mode derivation unit 401 include a motionvector predictor candidate list mvpListLX. The motion vector predictorcandidate list mvpListLX has a list structure and is provided with astorage area where a motion vector predictor index indicating thelocation inside the motion vector predictor candidate list and a motionvector predictor candidate corresponding to the index are stored aselements. The number of the motion vector predictor index starts from 0and motion vector predictor candidates are stored in the storage area ofthe motion vector predictor candidate list mvpListLX. In the presentembodiment, it is assumed that at least two motion vector predictorcandidates (inter prediction information) can be registered in themotion vector predictor candidate list mvpListLX. Furthermore, avariable numCurrMvpCand indicating the number of motion vector predictorcandidates registered in the motion vector predictor candidate listmvpListLX is set to 0.

The spatial motion vector predictor candidate derivation units 321 and421 derive motion vector predictor candidates from neighboring blocks onthe left side. In this process, a motion vector predictor mvLXA isderived with reference to the inter prediction information of theneighboring block on the left side (A0 or A1 of FIG. 11 ), i.e., a flagindicating whether or not a motion vector predictor candidate can beused, a motion vector, a reference index, and the like, and the derivedmvLXA is added to the motion vector predictor candidate list mvpListLX(step S301 of FIG. 20 ). Also, X is 0 at the time of L0-prediction and Xis 1 at the time of L1-prediction (the same is true hereinafter).Subsequently, the spatial motion vector predictor candidate derivationunits 321 and 421 derive a motion vector predictor candidate from aneighboring block on the upper side. In this process, the motion vectorpredictor mvLXB is derived with reference to inter predictioninformation of a neighboring block on the upper side (B0, B1, or B2 ofFIG. 11 ), i.e., a flag indicating whether or not a motion vectorpredictor candidate can be used, a motion vector, a reference index, andthe like, and mvLXB is added to the motion vector predictor candidatelist mvpListLX if the derived mvLXA is not equal to the derived mvLXB(step S302 of FIG. 20 ). The processing of steps S301 and S302 of FIG.20 is common except that positions of neighboring blocks to be referredto and the number of neighboring blocks to be referred to are different,and a flag availableFlagLXN indicating whether or not a motion vectorpredictor candidate of the coding block can be used, a motion vectormvLXN, and a reference index refIdxN (N represents A or B and the sameis true hereinafter) are derived.

Subsequently, the temporal motion vector predictor candidate derivationunits 322 and 422 derive motion vector predictor candidates from blocksin a picture whose time is different from that of the current targetpicture. In this process, a flag availableFlagLXCol indicating whetheror not a motion vector predictor candidate of a coding block of apicture of different time can be used, a motion vector mvLXCol, areference index refIdxCol, and a reference list listCol are derived, andmvLXCol is added to the motion vector predictor candidate list mvpListLX(step S303 of FIG. 20 ).

Also, it is assumed that the processes of the temporal motion vectorpredictor candidate derivation units 322 and 422 can be omitted in unitsof sequences (SPS), pictures (PPS), or slices.

Subsequently, the history-based motion vector predictor candidatederivation units 323 and 423 add the history-based motion vectorpredictor candidates registered in the history-based motion vectorpredictor candidate list HmvpCandList to the motion vector predictorcandidate list mvpListLX (step S304 of FIG. 20 ). Details of theregistration processing procedure of step S304 will be described belowusing the flowchart of FIG. 29 .

Subsequently, the motion vector predictor candidate replenishment units325 and 425 add motion vector predictor candidates having apredetermined value such as (0, 0) until the motion vector predictorcandidate list mvpListLX is satisfied (S305 of FIG. 20 ).

<Normal Merge Mode Derivation Unit (Normal Merge)>

The normal merge mode derivation unit 302 of FIG. 18 includes a spatialmerging candidate derivation unit 341, a temporal merging candidatederivation unit 342, an average merging candidate derivation unit 344, ahistory-based merging candidate derivation unit 345, a merging candidatereplenishment unit 346, and a merging candidate selection unit 347.

The normal merge mode derivation unit 402 of FIG. 24 includes a spatialmerging candidate derivation unit 441, a temporal merging candidatederivation unit 442, an average merging candidate derivation unit 444, ahistory-based merging candidate derivation unit 445, a merging candidatereplenishment unit 446, and a merging candidate selection unit 447.

FIG. 21 is an explanatory flowchart showing a procedure of a normalmerge mode derivation process having a function common to the normalmerge mode derivation unit 302 of the picture coding device and thenormal merge mode derivation unit 402 of the picture decoding deviceaccording to the embodiment of the present invention.

Hereafter, various processes will be described step by step. Although acase in which a type of slice slice_type is a B slice will be describedunless otherwise specified in the following description, the presentinvention can also be applied to the case of a P slice. However, whenthe type of slice slice_type is a P slice, because only theL0-prediction (Pred_L0) is provided as the inter prediction mode andL1-prediction (Pred_L1) and bi-prediction (Pred_BI) are absent, aprocess related to L1 can be omitted.

The normal merge mode derivation unit 302 and the normal merge modederivation unit 402 have a merging candidate list mergeCandList. Themerging candidate list mergeCandList has a list structure and isprovided with a merge index indicating the location within the mergingcandidate list and a storage area where merging candidates correspondingto the index are stored as elements. The number of the merge indexstarts from 0 and merging candidates are stored in the storage area ofthe merging candidate list mergeCandList. In the subsequent process, themerging candidate of the merge index i registered in the mergingcandidate list mergeCandList is represented by mergeCandList[i]. In thepresent embodiment, it is assumed that at least six merging candidates(inter prediction information) can be registered in the mergingcandidate list mergeCandList. Further, a variable numCurrMergeCandindicating the number of merging candidates registered in the mergingcandidate list mergeCandList is set to 0.

A spatial merging candidate derivation unit 341 and a spatial mergingcandidate derivation unit 441 derive spatial merging candidates fromblocks (B1, A1, B0, A0, and B2 of FIG. 11 ) neighboring a target blockin the order of B1, A1, B0, A0, and B2 from the coding informationstored in the coding information storage memory 111 of the picturecoding device or the coding information storage memory 205 of thepicture decoding device and register the derived spatial mergingcandidates in the merging candidate list mergeCandList (step S401 ofFIG. 21 ). Here, N indicating any one of B1, A1, B0, A0, B2, and thetemporal merging candidate Col is defined. A flag availableFlagNindicating whether or not inter prediction information of block N isavailable as a spatial merging candidate, a reference index refIdxL0N ofL0 and a reference index refIdxL1N of L1 of spatial merging candidate N,an L0-prediction flag predFlagL0N indicating whether or notL0-prediction is to be performed, an L1-prediction flag predFlagL1Nindicating whether or not L1-prediction is to be performed, a motionvector mvL0N of L0, and a motion vector mvL1N of L1 are derived.However, in the present embodiment, because the merging candidate isderived without referring to inter prediction information of a blockincluded in a coding block serving as a target, a spatial mergingcandidate using the inter prediction information of the block includedin the target coding block is not derived.

Subsequently, the temporal merging candidate derivation unit 342 and thetemporal merging candidate derivation unit 442 derive temporal mergingcandidates from pictures of different times and register the derivedtemporal merging candidates in the merging candidate list mergeCandList(step S402 of FIG. 21 ). A flag availableFlagCol indicating whether ornot the temporal merging candidate can be used, an L0-prediction flagpredFlagL0Col indicating whether or not L0-prediction of the temporalmerging candidate is performed, an L1-prediction flag predFlagL1Colindicating whether or not L1-prediction is performed, a motion vectormvL0Col of L0, and a motion vector mvL1Col of L1 are derived.

Also, it is assumed that the processes of the temporal merging candidatederivation unit 342 and the temporal merging candidate derivation unit442 can be omitted in units of sequences (SPS), pictures (PPS), orslices.

Subsequently, the history-based merging candidate derivation unit 345and the history-based merging candidate derivation unit 445 registerhistory-based motion vector predictor candidates registered in thehistory-based motion vector predictor candidate list HmvpCandList in themerging candidate list mergeCandList (step S403 of FIG. 21 ).

Also, when the number of merging candidates numCurrMergeCand registeredwithin the merging candidate list mergeCandList is smaller than themaximum number of merging candidates MaxNumMergeCand, the maximum numberof merging candidates MaxNumMergeCand is set as an upper limit of thenumber of merging candidates numCurrMergeCand registered within themerging candidate list mergeCandList and history-based mergingcandidates are derived and registered in the merging candidate listmergeCandList.

Subsequently, the average merging candidate derivation unit 344 and theaverage merging candidate derivation unit 444 derive an average mergingcandidate from the merging candidate list mergeCandList and adds thederived average merging candidate to the merging candidate listmergeCandList (step S404 of FIG. 21 ).

Also, when the number of merging candidates numCurrMergeCand registeredwithin the merging candidate list mergeCandList is smaller than themaximum number of merging candidates MaxNumMergeCand, the maximum numberof merging candidates MaxNumMergeCand is set as an upper limit of thenumber of merging candidates numCurrMergeCand registered within themerging candidate list mergeCandList and average merging candidates arederived and registered in the merging candidate list mergeCandList.

Here, the average merging candidate is a new merging candidate having amotion vector obtained by averaging motion vectors of a first mergingcandidate and a second merging candidate registered in the mergingcandidate list mergeCandList for each of the L0-prediction and theL1-prediction.

Subsequently, in the merging candidate replenishment unit 346 and themerging candidate replenishment unit 446, when the number of mergingcandidates numCurrMergeCand registered within the merging candidate listmergeCandList is smaller than the maximum number of merging candidatesMaxNumMergeCand, the maximum number of merging candidatesMaxNumMergeCand is set as an upper limit of the number of mergingcandidates numCurrMergeCand registered within the merging candidate listmergeCandList and an additional merging candidate is derived andregistered in the merging candidate list mergeCandList (step S405 ofFIG. 21 ). In the P slice, a merging candidate for which a motion vectorhas a value of (0, 0) and the prediction mode is L0-prediction (Pred_L0)is added using the maximum number of merging candidates MaxNumMergeCandas the upper limit. In the B slice, a merging candidate for which amotion vector has a value of (0, 0) and the prediction mode isbi-prediction (Pred_BI) is added. A reference index when the mergingcandidate is added is different from the previously added referenceindex.

Subsequently, the merging candidate selection unit 347 and the mergingcandidate selection unit 447 select merging candidates from the mergingcandidates registered within the merging candidate list mergeCandList.The merging candidate selection unit 347 of the coding side selects amerging candidate by calculating a code amount and a distortion amount,and supplies a merge index indicating the selected merging candidate andinter prediction information of the merging candidate to themotion-compensated prediction unit 306 via the inter prediction modedetermination unit 305. On the other hand, the merging candidateselection unit 447 of the decoding side selects a merging candidate onthe basis of a decoded merge index and supplies the selected mergingcandidate to the motion-compensated prediction unit 406.

<Subblock-Based Motion Vector Predictor Mode Derivation>

Subblock-based motion vector predictor mode derivation will bedescribed.

FIG. 38 is a block diagram of the subblock-based motion vector predictormode derivation unit 303 in the coding device of the presentapplication.

First, an affine inheritance motion vector predictor candidatederivation unit 361 derives an affine inheritance motion vectorpredictor candidate. Details of the affine inheritance motion vectorpredictor candidate derivation will be described below.

Subsequently, an affine construction motion vector predictor candidatederivation unit 362 derives an affine construction motion vectorpredictor candidate. Details of the affine construction motion vectorpredictor candidate derivation will be described below.

Subsequently, an identical affine motion vector predictor candidatederivation unit 363 derives an identical affine motion vector predictorcandidate. Details of the identical affine motion vector predictorcandidate derivation will be described below.

The subblock-based motion vector detection unit 366 detects asubblock-based motion vector suitable for the subblock-based motionvector predictor mode and supplies the detected vector to asubblock-based motion vector predictor candidate selection unit 367 anda difference calculation unit 368.

The subblock-based motion vector predictor candidate selection unit 367selects a subblock-based motion vector predictor candidate from amongsubblock-based motion vector predictor candidates derived by the affineinheritance motion vector predictor candidate derivation unit 361, theaffine construction motion vector predictor candidate derivation unit362, and the identical affine motion vector predictor candidatederivation unit 363 on the basis of the motion vector supplied from thesubblock-based motion vector detection unit 366 and supplies informationabout the selected subblock-based motion vector predictor candidate tothe inter prediction mode determination unit 305 and the differencecalculation unit 368.

The difference calculation unit 368 supplies a motion vector predictordifference obtained by subtracting the subblock-based motion vectorpredictor selected by the subblock-based motion vector predictorcandidate selection unit 367 from the motion vector supplied from thesubblock-based motion vector detection unit 366 to the inter predictionmode determination unit 305.

FIG. 39 is a block diagram of the subblock-based motion vector predictormode derivation unit 403 in the decoding device of the presentapplication.

First, an affine inheritance motion vector predictor candidatederivation unit 461 derives an affine inheritance motion vectorpredictor candidate. A process of the affine inheritance motion vectorpredictor candidate derivation unit 461 is the same as the process ofthe affine inheritance motion vector predictor candidate derivation unit361 in the coding device of the present application.

Subsequently, an affine construction motion vector predictor candidatederivation unit 462 derives an affine construction motion vectorpredictor candidate. A process of the affine construction motion vectorpredictor candidate derivation unit 462 is the same as the process ofthe affine construction motion vector predictor candidate derivationunit 362 in the coding device of the present application.

Subsequently, an identical affine motion vector predictor candidatederivation unit 463 derives an identical affine motion vector predictorcandidate. A process of the identical affine motion vector predictorcandidate derivation unit 463 is the same as the processing of theidentical affine motion vector predictor candidate derivation unit 363in the coding device of the present application.

A subblock-based motion vector predictor candidate selection unit 467selects a subblock-based motion vector predictor candidate from amongsubblock-based motion vector predictor candidates derived by the affineinheritance motion vector predictor candidate derivation unit 461, theaffine construction motion vector predictor candidate derivation unit462, and the identical affine motion vector predictor candidatederivation unit 463 on the basis of the motion vector predictor index,which is transmitted from the coding device and is decoded, and suppliesinformation about the selected subblock-based motion vector predictorcandidate to the motion-compensated prediction unit 406 and an additionoperation unit 467.

The addition operation unit 467 supplies a motion vector generated byadding the differential motion vector, which is transmitted from thecoding device and is decoded, to the subblock-based motion vectorpredictor selected by the subblock-based motion vector predictorcandidate selection unit 466 to the motion-compensated prediction unit406.

<Affine Inheritance Motion Vector Predictor Candidate Derivation>

The affine inheritance motion vector predictor candidate derivation unit361 will be described. The affine inheritance motion vector predictorcandidate derivation unit 361 is similar to the affine inheritancemotion vector predictor candidate derivation unit 461.

An affine inheritance motion vector predictor candidate inherits motionvector information of an affine control point. FIG. 42 is an explanatorydiagram showing affine inheritance motion vector predictor candidatederivation.

The affine inheritance motion vector predictor candidate can be obtainedby searching for motion vectors of affine control points of neighboringcoded/decoded blocks in a spatial domain.

Specifically, a search process is performed in a maximum of one affinemode from each of blocks (A0 and A1) adjacent to a left side of acoding/decoding target block and blocks (B0, B1, and B2) adjacent to anupper side of the coding/decoding target block and a search result isset as an affine inheritance motion vector predictor.

FIG. 46 is a flowchart of affine inheritance motion vector predictorcandidate derivation.

First, the blocks (A0 and A1) adjacent to the left side of thecoding/decoding target block are set as a left group (S3101) and it isdetermined whether or not a block including A0 is a block using affineguarantee (in the affine mode) (S3102). When A0 is in the affine mode(S3102: YES), an affine model used by A0 is acquired (S3103) and theprocess moves to processing of blocks adjacent to the upper side of thecoding/decoding target block. When A0 is not in the affine mode (S3102:NO), a target of the affine inheritance motion vector predictorcandidate derivation is set to A0→A1 and the acquisition of the affinemode from a block including A1 is attempted.

Subsequently, the blocks (B0, B1, and B2) adjacent to the upper side ofthe coding/decoding target block are set as an upper group (S3104) andit is determined whether or not a block including B0 is in the affinemode (S3105). When B0 is in the affine mode (S3105: YES), an affinemodel used by B0 is acquired (S3106) and the process ends. When B0 isnot in the affine mode (S3105: NO), a target of the affine inheritancemotion vector predictor candidate derivation is set to B0→B1 and theacquisition of the affine mode from a block including B1 is attempted.Further, when B1 is not in the affine mode (S3105: NO), the target ofthe affine inheritance motion vector predictor candidate derivation isset to B1→B2 and the acquisition of the affine mode from a blockincluding B2 is attempted.

In this manner, the groups are divided into the left block and the upperblock, the affine model is searched for in the order of the lower leftto upper left blocks with respect to the left block and the affine modelis searched for in the order of the upper right to upper left blockswith respect to the left block, so that it is possible to acquire twoaffine models that are as different as possible and it is possible toderive an affine motion vector predictor candidate in which one of theaffine motion vector predictors has a smaller difference motion vector.

<Affine Construction Motion Vector Predictor Candidate Derivation>

The affine construction motion vector predictor candidate derivationunit 362 will be described. The affine construction motion vectorpredictor candidate derivation unit 362 is similar to the affineconstruction motion vector predictor candidate derivation unit 462.

The affine construction motion vector predictor candidate constructs themotion vector information of the affine control point from motioninformation of neighboring blocks in the spatial domain.

FIG. 43 is an explanatory diagram showing affine construction motionvector predictor candidate derivation.

Affine construction motion vector predictor candidates can be obtainedby constructing a new affine model by combining motion vectors ofneighboring coded/decoded blocks in the spatial domain.

Specifically, a motion vector of an upper left affine control point CP0is derived from the blocks (B2, B3, and A2) adjacent to an upper leftside of the coding/decoding target block, a motion vector of an upperright affine control point CP1 is derived from the blocks (B1 and B0)adjacent to an upper right side of the coding/decoding target block, anda motion vector of a lower left affine control point CP2 is derived fromthe blocks (A1 and A0) adjacent to a lower left side of thecoding/decoding target block.

FIG. 47 is a flowchart of affine construction motion vector predictorcandidate derivation.

First, the upper left control point CP0, the upper right control pointCP1, and the lower left affine control point CP2 are derived (S3201).The upper left affine control point CP0 is calculated by searching for areference block having the same reference picture as the coding/decodingtarget block in the order of priority of B2, B3, and A2 referenceblocks. The upper right affine control point CP1 is calculated bysearching for a reference block having the same reference picture as thecoding/decoding target block in the order of priority of B1 and B0reference blocks. The lower left affine control point CP2 is calculatedby searching for a reference block having the same reference picture asthe coding/decoding target block in the order of priority of A1 and A0reference blocks.

When a mode of three affine control points is selected as the affineconstruction motion vector predictor (S3202: YES), it is determinedwhether or not three affine control points (CP0, CP1, and CP2) have allbeen derived (S3203). When three affine control points (CP0, CP1, andCP2) have all been derived (S3203: YES), an affine model using the threeaffine control points (CP0, CP1, and CP2) is set as an affineconstruction motion vector predictor (S3204). When a mode of the twoaffine control points is selected without selecting the mode of thethree affine control points (S3202: NO), it is determined whether or notthe two affine control points (CP0 and CP1) have all been derived(S3205). When the two affine control points (CP0 and CP1) have all beenderived (S3205: YES), an affine model using the two affine controlpoints (CP0 and CP1) is set as an affine construction motion vectorpredictor (S3206).

<Identical Affine Motion Vector Predictor Candidate Derivation>

The identical affine motion vector predictor candidate derivation unit363 will be described. The identical affine motion vector predictorcandidate derivation unit 363 is similar to the identical affine motionvector predictor candidate derivation unit 463.

The identical affine motion vector predictor candidate can be obtainedby deriving the same motion vector at the affine control points.

Specifically, the identical affine motion vector predictor candidate canbe obtained by deriving affine control point information and setting allaffine control points to be the same as any one of the affine controlpoints CP0 to CP2 as in the affine construction motion vector predictorcandidate derivation unit 362/462. Also, the identical affine motionvector predictor candidate can be obtained by setting a temporal motionvector derived as in the normal motion vector predictor mode at allaffine control points.

<Subblock-Based Merge Mode Derivation>

Subblock-based merge mode derivation will be described.

FIG. 40 is a block diagram of the subblock-based merge mode derivationunit 304 in the coding device of the present application. Thesubblock-based merge mode derivation unit 304 includes a subblock-basedmerging candidate list subblockMergeCandList. The subblock-based mergingcandidate list subblockMergeCandList is similar to the merging candidatelist mergeCandList in the normal merge mode derivation unit 302, exceptthat candidate lists differ in units of subblocks.

First, a subblock-based temporal merging candidate derivation unit 381derives a subblock-based temporal merging candidate. Details of thesubblock-based temporal merging candidate derivation will be describedbelow.

Subsequently, an affine inheritance merging candidate derivation unit382 derives an affine inheritance merging candidate. Details of theaffine inheritance merging candidate derivation will be described below.

Subsequently, an affine construction merging candidate derivation unit383 derives an affine construction merging candidate. Details of theaffine construction merging candidate derivation will be describedbelow.

Subsequently, an affine fixation merging candidate derivation unit 385derives an affine fixation merging candidate. Details of the affinefixation merging candidate derivation will be described below.

A subblock-based merging candidate selection unit 386 selects asubblock-based merging candidate from among subblock-based mergingcandidates derived by the subblock-based temporal merging candidatederivation unit 381, the affine inheritance merging candidate derivationunit 382, the affine construction merging candidate derivation unit 383,and the affine fixation merging candidate derivation unit 385 andsupplies information about the selected subblock-based merging candidateto the inter prediction mode determination unit 305.

FIG. 41 is a block diagram of the subblock-based merge mode derivationunit 404 in the decoding device of the present application. Thesubblock-based merge mode derivation unit 404 includes a subblock-basedmerging candidate list subblockMergeCandList. This subblock-basedmerging candidate list subblockMergeCandList is the same as that of thesubblock-based merge mode derivation unit 304.

First, a subblock-based temporal merging candidate derivation unit 481derives a subblock-based temporal merging candidate. A process of thesubblock-based temporal merging candidate derivation unit 481 is thesame as the process of the subblock-based temporal merging candidatederivation unit 381.

Subsequently, an affine inheritance merging candidate derivation unit482 derives an affine inheritance merging candidate. A process of theaffine inheritance merging candidate derivation unit 482 is the same asthe process of the affine inheritance merging candidate derivation unit382.

Subsequently, an affine construction merging candidate derivation unit483 derives an affine construction merging candidate. A process of theaffine construction merging candidate derivation unit 483 is the same asthe process of the affine construction merging candidate derivation unit383.

Subsequently, an affine fixation merging candidate derivation unit 485derives an affine fixation merging candidate. A process of the affinefixation merging candidate derivation unit 485 is the same as theprocess of the affine fixation merging candidate derivation unit 485.

A subblock-based merging candidate selection unit 486 selects asubblock-based merging candidate from among subblock-based mergingcandidates derived by the subblock-based temporal merging candidatederivation unit 481, the affine inheritance merging candidate derivationunit 482, the affine construction merging candidate derivation unit 483,and an affine fixation merging candidate derivation unit 485 on thebasis of an index, which is transmitted from the coding device and isdecoded, and supplies information about the selected subblock-basedmerging candidate to the motion-compensated prediction unit 406.

<Subblock-Based Temporal Merging Candidate Derivation>

An operation of the subblock-based temporal merging candidate derivationunit 381 will be described below.

<Affine Inheritance Merging Candidate Derivation>

The affine inheritance merging candidate derivation unit 382 will bedescribed. The affine inheritance merging candidate derivation unit 382is similar to the affine inheritance merging candidate derivation unit482.

The affine inheritance merging candidate inherits an affine model ofaffine control points from affine models of neighboring blocks in thespatial domain. The affine model is determined by sizes of neighboringblocks in the spatial domain and motion information of the affinecontrol points.

FIG. 44 is an explanatory diagram showing affine inheritance mergingcandidate derivation. An affine merge inheritance merge mode candidatecan be derived by searching for motion vectors of affine control pointsof neighboring coded/decoded blocks in the spatial domain as in theaffine inheritance motion vector predictor derivation.

Specifically, a maximum of one affine mode is searched for from each ofblocks (A0 and A1) adjacent to a left side of a coding/decoding targetblock and blocks (B0, B1, and B2) adjacent to an upper side of thecoding/decoding target block and is used for an affine merge mode.

FIG. 48 is a flowchart of affine inheritance merging candidatederivation.

First, the blocks (A0 and A1) adjacent to the left side of thecoding/decoding target block are set as a left group (S3301) and it isdetermined whether or not a block including A0 is in the affine mode(S3302). When A0 is in the affine mode (S3102: YES), the affine modelused by A0 is acquired (S3303) and the process moves to processing ofblocks adjacent to the upper side of the coding/decoding target block.When A0 is not in the affine mode (S3302: NO), a target of the affineinheritance merging candidate derivation is set to A0→A1 and theacquisition of the affine mode from a block including A1 is attempted.

Subsequently, the blocks (B0, B1, and B2) adjacent to the upper side ofthe coding/decoding target block are set as an upper group (S3304) andit is determined whether or not a block including B0 is in the affinemode (S3305). When B0 is in the affine mode (S3305: YES), the affinemodel used by B0 is acquired (S3306) and the process ends. When B0 isnot in the affine mode (S3305: NO), a target of the affine inheritancemerging candidate derivation is set to B0→B1 and the acquisition of theaffine mode from a block including B1 is attempted. Further, when B1 isnot in the affine mode (S3305: NO), the target of the affine inheritancemerging candidate derivation is set to B1→B2 and the acquisition of theaffine mode from a block including B2 is attempted.

<Affine Construction Merging Candidate Derivation>

The affine construction merging candidate derivation unit 383 will bedescribed. The affine construction merging candidate derivation unit 383is similar to the affine construction merging candidate derivation unit483.

FIG. 45 is an explanatory diagram showing affine construction mergingcandidate derivation. An affine construction merging candidateconstructs an affine model of affine control points from motioninformation of neighboring blocks in the spatial domain and a temporalcoding block.

Specifically, a motion vector of an upper left affine control point CP0is derived from the blocks (B2, B3, and A2) adjacent to an upper leftside of the coding/decoding target block, a motion vector of an upperright affine control point CP1 is derived from the blocks (B1 and B0)adjacent to an upper right side of the coding/decoding target block, amotion vector of a lower left affine control point CP2 is derived fromthe blocks (A1 and A0) adjacent to a lower left side of thecoding/decoding target block, and a motion vector of a lower rightaffine control point CP3 is derived from the temporal coding block (T0)adjacent to a lower right side of the coding/deciding target block.

FIG. 49 is a flowchart of affine construction merging candidatederivation.

First, the upper left affine control point CP0, the upper right affinecontrol point CP1, the lower left affine control point CP2, and thelower right affine control point CP3 are derived (S3401). The upper leftaffine control point CP0 is calculated by searching for blocks havingmotion information in the order of priority of B2, B3, and A2 blocks.The upper right affine control point CP1 is calculated by searching forblocks having motion information in the order of priority of B1 and B0blocks. The lower left affine control point CP2 is calculated bysearching for blocks having motion information in the order of priorityof A1 and A0 blocks. The lower right affine control point CP3 iscalculated by searching for motion information of time blocks.

Subsequently, it is determined whether or not an affine model of threeaffine control points can be constructed by the derived upper leftaffine control point CP0, the derived upper right affine control pointCP1, and the derived lower left affine control point CP2 (S3402). Whenthe affine model can be constructed (S3402: YES), the affine model ofthe three affine control points based on the upper left affine controlpoint CP0, the upper right affine control point CP1, and the lower leftaffine control point CP2 is set as an affine merge candidate (S3403).

Subsequently, it is determined whether or not an affine model of threeaffine control points can be constructed by the derived upper leftaffine control point CP0, the derived upper right affine control pointCP1, and the derived lower right affine control point CP3 (S3404). Whenthe affine mode can be constructed (S3404: YES), the affine model of thethree affine control points based on the upper left affine control pointCP0, the upper right affine control point CP1, and the lower rightaffine control point CP3 is set as an affine merge candidate (S3405).

Subsequently, it is determined whether or not an affine model of threeaffine control points can be constructed by the derived upper leftaffine control point CP0, the derived lower left affine control pointCP2, and the derived lower right affine control point CP3 (S3406). Whenthe affine model can be constructed (S3406: YES), the affine model ofthe three affine control points based on the upper left affine controlpoint CP0, the lower left affine control point CP2, and the lower rightaffine control point CP3 is set as an affine merge candidate (S3407).

Subsequently, it is determined whether or not an affine model of twoaffine control points can be constructed by the derived upper leftaffine control point CP0 and the derived upper right affine controlpoint CP1 (S3408). When the affine model can be constructed (S3408:YES), the affine model of the two affine control points based on theupper left affine control point CP0 and the upper right affine controlpoint CP1 is set as an affine merge candidate (S3409).

Subsequently, it is determined whether or not an affine model of twoaffine control points can be constructed by the derived upper leftaffine control point CP0 and the derived lower left affine control pointCP2 (S3410). When the affine model can be constructed (S3410: YES), theaffine model of the two affine control points based on the upper leftaffine control point CP0 and the lower left affine control point CP2 isset as an affine merge candidate (S3411).

Here, it is determined whether or not an affine model is to beconstructed under the following conditions.

1. The reference pictures of all affine control points are the same. (Anaffine transform is possible)

2. A different motion vector is provided at at least one affine controlpoint.

(Expression by a Parallel Shift is Difficult)

As described above, in the first embodiment, the upper left affinecontrol point CP0 is included with respect to all the affineconstruction merging candidates. At the upper left affine control pointCP0, a possibility that there is a coded/decoded block is highest, i.e.,a possibility that there is motion information is highest, when apicture is processed in raster scan order from left to right and fromtop to bottom.

By deriving the affine construction merging candidate using the upperleft affine control point CP0, an amount of processing for determiningwhether or not reference pictures are the same when the affine controlpoints are combined is reduced. Also, in the derivation of the affinecontrol points of the upper right affine control point CP1, the lowerleft affine control point CP2, and the lower right affine control pointCP3 (S3401), it is possible to preferentially search for a referencepicture which is the same as that of the upper left affine control pointCP0. In this case, affine construction merging candidates having thesame reference picture can be derived, valid affine construction mergingcandidates with the same reference picture can be derived, and affinemerge candidates with high coding efficiency can be derived.

Here, the determination of the reference picture based on the upper leftaffine control point CP0 will be described in more detail.

FIG. 62 is a diagram showing comparative targets of motion informationwhen an affine construction merging candidate is derived by combiningthe derived affine control points in the affine construction mergingcandidate derivation.

FIG. 62(A) is a diagram of a case in which an affine model of threeaffine control points is constructed by the upper left affine controlpoint CP0, the upper right affine control point CP1, and the lower leftaffine control point CP2. In this case, the motion information of theupper left affine control point CP0 and the upper right affine controlpoint CP1 is compared and a comparison is made regarding whether thereference pictures of the upper left affine control point CP0 and theupper right affine control point CP1 are the same and whether the motionvectors of the upper left affine control point CP0 and the upper rightaffine control point CP1 are different. Likewise, the motion informationof the upper left affine control point CP0 and the lower left affinecontrol point CP2 is compared.

FIG. 62(B) is a diagram of a case in which an affine model of threeaffine control points is constructed by the upper left affine controlpoint CP0, the lower left affine control point CP2, and the lower rightaffine control point CP3. In this case, the motion information of theupper left affine control point CP0 and the lower left affine controlpoint CP2 is compared and the motion information of the upper leftaffine control point CP0 and the lower right affine control point CP3 iscompared.

FIG. 62(C) is a diagram of a case in which an affine model of threeaffine control points is constructed by the upper left affine controlpoint CP0, the upper right affine control point CP1, and the lower rightaffine control point CP3. In this case, the motion information of theupper left affine control point CP0 and the upper right affine controlpoint CP1 is compared and the motion information of the upper leftaffine control point CP0 and the lower right affine control point CP3 iscompared.

FIG. 62(D) is a diagram of a case in which an affine model of two affinecontrol points is constructed by the upper left affine control point CP0and the upper right affine control point CP1. In this case, the motioninformation of the upper left affine control point CP0 and the upperright affine control point CP1 is compared.

FIG. 62(E) is a diagram of a case in which an affine model of two affinecontrol points is constructed by the upper left affine control point CP0and the lower left affine control point CP2. In this case, the motioninformation of the upper left affine control point CP0 and the lowerleft affine control point CP2 is compared.

In this manner, in all combinations of affine construction mergingcandidate derivation, the motion information of the upper left affinecontrol point CP0 and each affine control point CPx (x=1, 2, 3) iscompared and it is determined whether or not the reference pictures arethe same and the affine transform is possible.

<Affine Fixation Merging Candidate Derivation>

The affine fixation merging candidate derivation unit 385 will bedescribed. The affine fixation merging candidate derivation unit 385 issimilar to the affine fixation merging candidate derivation unit 485. Inthe affine fixation merging candidate, the motion information of theaffine control point is fixed with fixed motion information.Specifically, the motion vector of each affine control point is fixed at(0, 0).

<Temporal Motion Vector Predictor>

Prior to the description of the temporal motion vector predictor, atemporal context relationship between pictures will be described. FIG.55(a) shows a relationship in which a coding block of a coding targetand a coding target picture are coded pictures different in a timedomain. In a coding target picture, a specific coded picture referred tofor coding is defined as ColPic. ColPic is identified by syntax.

Also, FIG. 55(b) shows a coded coding block located at the same positionas the coding target coding block and in the vicinity thereof in ColPic.Coding blocks T0 and T1 are coding blocks at substantially the sameposition in a picture different from the coding target picture in thetime domain.

Although the description of the temporal context of the picturedescribed above is for coding, the same is true for decoding. That is,at the time of decoding, the coding in the above description is replacedwith decoding and similar description is given.

The operation of the temporal motion vector predictor candidatederivation unit 322 in the normal motion vector predictor modederivation unit 301 of FIG. 17 will be described with reference to FIG.56 .

First, ColPic is derived (step S4201). The derivation of ColPic will bedescribed with reference to FIG. 57 .

When a slice type slice_type is a B slice and a flagcollocated_from_l0_flag is 0 (step S4211: YES and step S4212: YES), apicture whose reference index is 0 in RefPicList1[0], i.e., thereference list L1, becomes a picture colPic at a different time (stepS4213). Otherwise, i.e., when the slice type slice_type is a B slice andthe above-described flag collocated_from_l0_flag is 1 (step S4211: YESand step S4212: NO), or when the slice type slice_type is a P slice(step S4211: NO and step S4214: YES), a picture whose reference index is0 in RefPicList0[0], i.e., the reference list L0, becomes the picturecolPic at the different time (step S4215). When slice_type is not a Pslice (step S4214: NO), the process ends.

FIG. 56 is referred to again. After ColPic is derived, a coding blockcolCb is derived and coding information thereof is acquired (stepS4202). This process will be described with reference to FIG. 58 .

First, a coding block located at the lower right (outside) having thesame position as a target coding block within the picture colPic at thedifferent time is set as the coding block colCb at the different time(step S4221). This coding block corresponds to the coding block T0 ofFIG. 49 .

Next, coding information of the coding block colCb at the different timeis acquired (step S4222). When a prediction mode PredMode of the codingblock colCb at the different time is not available or the predictionmode PredMode of the coding block colCb at the different time is intraprediction (MODE_INTRA) (step S4223: NO and step S4224: YES), a codingblock located at the lower right of the center having the same positionas the target coding block within the picture colPic at the differenttime is set as the coding block colCb at the different time (stepS4225). This coding block corresponds to the coding block T1 of FIG. 55.

FIG. 56 is referred to again. Next, inter prediction information isderived for each reference list (S4203 and S4204). Here, the motionvector mvLXCol for each reference list and the flag availableFlagLXColindicating whether or not the coding information is valid are derivedwith respect to the coding block colCb. LX indicates a reference list,LX becomes L0 in the derivation of reference list 0, and LX becomes L1in the derivation of reference list 1. Derivation of the interprediction information will be described with reference to FIG. 59 .

When the coding block colCb at the different time is not available(S4231S4231: NO) or when the prediction mode PredMode is intraprediction (MODE_INTRA) (S4232: NO), both the flag availableFlagLXColand a flag predFlagLXCol are set to 0 (step S4233). The motion vectormvLXCol is set to (0, 0) (S4234) and the process ends.

When the coding block colCb is available (S4231: YES) and the predictionmode PredMode is not intra prediction (MODE_INTRA) (S4232: YES), mvCol,refIdxCol, and availableFlagCol are calculated in the followingprocedure.

When a flag PredFlagL0[xPCol][yPCol] indicating whether or not theL0-prediction of the coding block colCb is used is 0 (S4235: YES), theprediction mode of the coding block colCb is Pred_L1, so the motionvector mvCol is set to have the same value as MvL1[xPCol][yPCol] whichis the motion vector of L1 of the coding block colCb (S4236), thereference index refIdxCol is set to have the same value as the referenceindex RefIdxL1[xPCol][yPCol] of L1 (S4237), and the list ListCol is setto L1 (S4238). Here, xPCol and yPCol are indices indicating a positionof the upper left sample of the coding block colCb in the picture colPicat the different time.

On the other hand, when the L0-prediction flag PredFlagL0[xPCol][yPCol]of the coding block colCb is not 0 (S4235: NO), it is determined whetheror not the L1-prediction flag PredFlagL1[xPCol][yPCol] of the codingblock colCb is 0. When the L1-prediction flag PredFlagL1[xPCol][yPCol]of the coding block colCb is 0 (S4239: YES), the motion vector mvCol isset to have the same value as MvL0[xPCol][yPCol] which is the motionvector of L0 of the coding block colCb (S4240), the reference indexrefIdxCol is set to have the same value as the reference indexRefIdxL0[xPCol][yPCol] of L0 (S4241), and the list ListCol is set to L0(S4242).

When the L0-prediction flag PredFlagL0[xPCol][yPCol] of the coding blockcolCb and the L1-prediction flag PredFlagL1[xPCol][yPCol] of the codingblock colCb are both non-zero (S4235: NO and S4239: NO), one of twomotion vectors of L0 and L1 is selected because the inter predictionmode of the coding block colCb is bi-prediction (Pred_BI) (S4243). FIG.60 is a flowchart showing a processing procedure for deriving the interprediction information of the coding block when the inter predictionmode of the coding block colCb is bi-prediction (Pred_BI).

First, it is determined whether or not POCs of all pictures registeredin all reference lists are smaller than a POC of a current coding targetpicture (S4251). When the POCs of all the pictures registered in L0 andL1, which are all the reference lists of the coding block colCb, aresmaller than the POC of the current coding target picture (S4251: YES),the inter prediction information of L0 of the coding block colCb isselected if LX is L0, i.e., a vector predictor candidate of the motionvector of L0 of the coding block of the coding target is derived (S4252:YES) and the inter prediction information of L1 of the coding blockcolCb is selected if LX is L1, i.e., the vector predictor candidate ofthe motion vector of L1 of the coding block of the coding target isderived (S4252: NO). On the other hand, when at least one of the POCs ofthe pictures registered in all the reference lists L0 and L1 of thecoding block colCb is larger than the POC of the current coding targetpicture (S4251: NO), the inter prediction information of L0 of thecoding block colCb is selected if the flag collocated_from_l0_flag is 0(S4253: YES) and the inter prediction information of L1 of the codingblock colCb is selected if the flag collocated_from_l0_flag is 1 (S4253:NO).

When the inter prediction information of L0 of the coding block colCb isselected (S4252: YES and S4253: YES), the motion vector mvCol is set tohave the same value as MvL0[xPCol][yPCol] (S4254), the reference indexrefIdxCol is set to have the same value as RefIdxL0[xPCol][yPCol](S4255), and the list ListCol is set to L0 (S4256).

When the inter prediction information of L1 of the coding block colCb isselected (S4252: NO and S4253: NO), the motion vector mvCol is set tohave the same value as MvL1[xPCol][yPCol] (S4257), the reference indexrefIdxCol is set to have the same value as RefIdxL1[xPCol][yPCol](S4258), and the list ListCol is set to L1 (S4259).

Returning to FIG. 59 , when the inter prediction information can beacquired from the coding block colCb, both the flag availableFlagLXColand the flag predFlagLXCol are set to 1 (S4244).

Subsequently, the motion vector mvCol is scaled and is set to the motionvector mvLXCol (S4245S4245). A scaling operation processing procedure ofthis motion vector mvLXCol will be described with reference to FIG. 61 .

An inter-picture distance td is calculated by subtracting the POC of thereference picture corresponding to the reference index refIdxColreferred to in the list ListCol of the coding block colCb from the POCof the picture colPic at the different time (S4261). Also, theinter-picture distance td becomes a positive value when the POC of thereference picture referred to in the list ListCol of the coding blockcolCb is earlier than that of the picture colPic at the different timein the display order and the inter-picture distance td is a negativevalue when the POC of the reference picture referred to in the listListCol of the coding block colCb is later than that of the picturecolPic at the different time in the display order.

td=POC of picture colPic at different time−POC of reference picturereferred to in list ListCol of coding block colCb

An inter-picture distance tb is calculated by subtracting a POC of areference picture, which is referred to in the list LX of the currentcoding target picture, from the POC of the current coding target picture(S4262). Also, the inter-picture distance tb becomes a positive valuewhen the reference picture, which is referred to in the list LX of thecurrent coding target picture, is earlier than the current coding targetpicture in the display order and the inter-picture distance tb becomes anegative value when the reference picture, which is referred to in thelist LX of the current coding target picture, is later than the currentcoding target picture in the display order.

tb=POC of current coding/decoding target picture−POC of referencepicture corresponding to reference index of LX of temporal mergingcandidates

Subsequently, when the inter-picture distances td and tb are compared(S4263). When the inter-picture distances td and tb are equal (S4263:YES), the motion vector mvLXCol is calculated by the following equation(S4264). The present scaling operation process ends.

mvLXCol=mvCol

On the other hand, when the inter-picture distances td and tb betweenpictures are not equal (S4263: NO), a variable tx is calculatedaccording to the following equation (S4265).

tx=(16384+Abs(td)>>1)/td

Subsequently, a scaling coefficient distScaleFactor is calculatedaccording to the following equation (S4266).

distScaleFactor=Clip3(−4096, 4095, (tb*tx+32)>>6)

Here, Clip3(x, y, z) is a function that limits a minimum value to x andlimits a maximum value to y with respect to a value z. Subsequently, themotion vector mvLXCol is calculated according to the following equation(S4267). The present scaling operation process ends.

mvLXCol=Clip3(−32768, 32767,Sign(distScaleFactor*mvLXCol)*((Abs(distScaleFactor*mvLXCol)+127)>>8))

Here, Sign(x) is a function that returns a sign of the value x andAbs(x) is a function that returns an absolute value of the value x.

FIG. 56 is referred to again. The motion vector mvL0Col of L0 is addedas a candidate to a motion vector predictor candidate list mvpListLXN inthe above-described normal motion vector predictor mode derivation unit301 (S4205). However, this addition is made only when the flagindicating whether or not the coding block colCb of reference list 0 isvalid is availableFlagL0Col=1. Also, the motion vector mvL1Col of L1 isadded as a candidate to the motion vector predictor candidate listmvpListLXN in the above-described normal motion vector predictor modederivation unit 301 (S4205). However, this addition is made only whenthe flag indicating whether or not the coding block colCb in referencelist 1 is valid is availableFlagL1Col=1. Accordingly, the process of thetemporal motion vector predictor candidate derivation unit 322 ends.

Although the above description of the normal motion vector predictormode derivation unit 301 is for coding, the same is true for decoding.That is, the operation of the temporal motion vector predictor candidatederivation unit 422 in the normal motion vector predictor modederivation unit 401 of FIG. 23 can be similarly described by replacingthe coding in the above description with decoding.

<Temporal Merging>

The operation of the temporal merging candidate derivation unit 342 inthe normal merge mode derivation unit 302 of FIG. 18 will be describedwith reference to FIG. 62 .

First, ColPic is derived (step S4301). Next, a coding block colCb isderived and coding information thereof is acquired (step S4302).Further, inter prediction information is derived for each reference list(S4303 and S4304). Because the above processing is the same as that ofS4201 to S4204 in the temporal motion vector predictor candidatederivation unit 322, the description thereof will be omitted.

Next, the flag availableFlagCol indicating whether or not the codingblock colCb is valid is calculated (S4305). When the flagavailableFlagL0Col or the flag availableFlagL1Col is 1, availableFlagColbecomes 1. Otherwise, availableFlagCol becomes 0.

The motion vector mvL0Col of L0 and the motion vector mvL1Col of L1 areadded as candidates to the merging candidate list mergeCandList in theabove-described normal merge mode derivation unit 302 (S4306). However,this addition is made only when the flag indicating whether or not thecoding block colCb is valid is availableFlagCol=1. Accordingly, theprocess of the temporal merging candidate derivation unit 342 ends.

Although the above description of the temporal merging candidatederivation unit 342 is for coding, the same is true for decoding. Thatis, the operation of the temporal merging candidate derivation unit 442in the normal merge mode derivation unit 402 of FIG. 24 can be similarlydescribed by replacing the coding in the above description withdecoding.

<Update of History-Based Motion Vector Predictor Candidate List>

Next, an initialization method and an update method of the history-basedmotion vector predictor candidate list HmvpCandList provided in thecoding information storage memory 111 of the coding side and the codinginformation storage memory 205 of the decoding side will be described indetail. FIG. 26 is an explanatory flowchart showing a processingprocedure of initializing/updating a history-based motion vectorpredictor candidate list.

In the present embodiment, it is assumed that the history-based motionvector predictor candidate list HmvpCandList is updated in the codinginformation storage memory 111 and the coding information storage memory205. A history-based motion vector predictor candidate list update unitmay be installed in the inter prediction unit 102 and the interprediction unit 203 to update the history-based motion vector predictorcandidate list HmvpCandList.

The history-based motion vector predictor candidate list HmvpCandList isinitially set at the beginning of the slice, the history-based motionvector predictor candidate list HmvpCandList is updated when the normalmotion vector predictor mode or the normal merge mode has been selectedby the prediction method determination unit 105 on the coding side, andthe history-based motion vector predictor candidate list HmvpCandList isupdated when the prediction information decoded by the bit stringsdecoding unit 201 is about the normal motion vector predictor mode orthe normal merge mode on the decoding side.

The inter prediction information used when inter prediction is performedin the normal motion vector predictor mode or the normal merge mode isregistered as an inter prediction information candidate hMvpCand in thehistory-based motion vector predictor candidate list HmvpCandList. Theinter prediction information candidate hMvpCand includes a referenceindex refIdxL0 of L0, a reference index refIdxL1 of L1, an L0-predictionflag predFlagL0 indicating whether or not L0-prediction is performed, anL1-prediction flag predFlagL1 indicating whether or not L1-prediction isperformed, a motion vector mvL0 of L0, and a motion vector mvL1 of L1.

When there is inter prediction information having the same value as aninter prediction information candidate hMvpCand among elements (i.e.,inter prediction information) registered in the history-based motionvector predictor candidate list HmvpCandList provided in the codinginformation storage memory 111 of the coding side and the codinginformation storage memory 205 of the decoding side, the element isremoved from the history-based motion vector predictor candidate listHmvpCandList. On the other hand, when there is no inter predictioninformation having the same value as an inter prediction informationcandidate hMvpCand, the element at the beginning of the history-basedmotion vector predictor candidate list HmvpCandList is removed and theinter prediction information candidate hMvpCand is added to the end ofthe history-based motion vector predictor candidate list HmvpCandList.

The number of elements of the history-based motion vector predictorcandidate list HmvpCandList provided in the coding information storagememory 111 of the coding side and the coding information storage memory205 of the decoding side according to the present invention is assumedto be six.

First, the history-based motion vector predictor candidate listHmvpCandList is initialized in units of slices (step S2101 of FIG. 26 ).All the elements of the history-based motion vector predictor candidatelist HmvpCandList are empty at the beginning of the slice and a value ofthe number of history-based motion vector predictor candidates (thecurrent number of candidates) NumHmvpCand registered in thehistory-based motion vector predictor candidate list HmvpCandList is setto 0.

Also, the initialization of the history-based motion vector predictorcandidate list HmvpCandList is performed in units of slices (a firstcoding block of a slice), but may be performed in units of pictures,tiles, or tree block rows.

Subsequently, the following process of updating the history-based motionvector predictor candidate list HmvpCandList is iteratively performedfor each coding block within the slice (steps S2102 to S2107 of FIG. 26).

First, initial setting is performed for each coding block. A flagidenticalCandExist indicating whether or not there is an identicalcandidate is set to a value of FALSE and a removal target indexremoveIdx indicating a removal target candidate is set to 0 (step S2103of FIG. 26 ).

It is determined whether or not there is an inter prediction informationcandidate hMvpCand of the registration target (step S2104 of FIG. 26 ).When the prediction method determination unit 105 of the coding sidedetermines that the mode is the normal motion vector predictor mode orthe normal merge mode or when the bit strings decoding unit 201 of thedecoding side decodes the mode as the normal motion vector predictormode or the normal merge mode, its inter prediction information is setas an inter prediction information candidate hMvpCand of theregistration target. When the prediction method determination unit 105of the coding side determines that the mode is the intra-predictionmode, the subblock-based motion vector predictor mode, or thesubblock-based merge mode or when the bit strings decoding unit 201 ofthe decoding side decodes the mode as the intra-prediction mode, thesubblock-based motion vector predictor mode, or the subblock-based mergemode, a process of updating the history-based motion vector predictorcandidate list HmvpCandList is not performed and the inter predictioninformation candidate hMvpCand of the registration target does notexist. When there is no inter prediction information candidate hMvpCandof the registration target, steps S2105 to S2106 are skipped (step S2104of FIG. 26 : NO). When there is an inter prediction informationcandidate hMvpCand of the registration target, the processing from stepS2105 is performed (step S2104 of FIG. 26 : YES).

Subsequently, it is determined whether or not there is an element (interprediction information) having the same value as the inter predictioninformation candidate hMvpCand of the registration target, i.e., anidentical element, among elements of the history-based motion vectorpredictor candidate list HmvpCandList (step S2105 of FIG. 26 ). FIG. 27is a flowchart of an identical element checking processing procedure.When a value of the number of history-based motion vector predictorcandidates NumHmvpCand is 0 (step S2121 of FIG. 27 : NO), thehistory-based motion vector predictor candidate list HmvpCandList isempty and there is no identical candidate, so that steps S2122 to S2125of FIG. 27 are skipped and the present identical element checkingprocessing procedure is completed. When the value of the number ofhistory-based motion vector predictor candidates NumHmvpCand is greaterthan 0 (YES in step S2121 of FIG. 27 ), the processing of step S2123 isiterated until the history-based motion vector predictor index hMvpIdxchanges from 0 to NumHmvpCand−1 (steps S2122 to S2125 of FIG. 27 ).First, a comparison is made regarding whether or not an hMvpIdx^(th)element HmvpCandList[hMvpIdx] when counted from a 0^(th) element of thehistory-based motion vector predictor candidate list is identical to theinter prediction information candidate hMvpCand (step S2123 of FIG. 27). When they are the same (step S2123 of FIG. 27 : YES), a flagidenticalCandExist indicating whether or not there is an identicalcandidate is set to a value of TRUE and a removal target index removeIdxindicating a position of an element of a removal target is set to acurrent value of the history-based motion vector predictor indexhMvpIdx, and the present identical element checking process ends. Whenthey are not the same (step S2123 of FIG. 27 : NO), hMvpIdx isincremented by 1. If the history-based motion vector predictor indexhMvpIdx is less than or equal to NumHmvpCand−1, the processing from stepS2123 is performed.

Referring to the flowchart of FIG. 26 again, a process of shifting andadding an element of the history-based motion vector predictor candidatelist HmvpCandList is performed (step S2106 of FIG. 26 ). FIG. 28 is aflowchart of a processing procedure of shifting/adding an element of thehistory-based motion vector predictor candidate list HmvpCandList ofstep S2106 of FIG. 26 . First, it is determined whether or not to add anew element after removing an element stored in the history-based motionvector predictor candidate list HmvpCandList or to add a new elementwithout removing the element. Specifically, a comparison is maderegarding whether or not the flag identicalCandExist indicating whetheror not an identical candidate exists is TRUE or NumHmvpCand is six (stepS2141 of FIG. 28 ). When either the condition that the flagidenticalCandExist indicating whether or not an identical candidateexists is TRUE or the condition that the current number of candidatesNumHmvpCand is six is satisfied (step S2141 of FIG. 28 : YES), a newelement is added after removing the element stored in the history-basedmotion vector predictor candidate list HmvpCandList. The initial valueof index i is set to a value of removeIdx+1. The element shift processof step S2143 is iterated from this initial value to NumHmvpCand (stepsS2142 to S2144 of FIG. 28 ). By copying the element of HmvpCandList[i]to HmvpCandList[i−1], the element is shifted forward (step S2143 of FIG.28 ) and i is incremented by 1 (steps S2142 to S2144 of FIG. 28 ).Subsequently, the inter prediction information candidate hMvpCand isadded to a (NumHmvpCand−1)^(th) element HmvpCandList[NumHmvpCand−1] whencounted from a 0^(th) element that corresponds to the end of thehistory-based motion vector predictor candidate list (step S2145 of FIG.28 ) and the present process of shifting/adding an element of thehistory-based motion vector predictor candidate list HmvpCandList ends.On the other hand, when neither the condition that the flagidenticalCandExist indicating whether or not an identical candidateexists is TRUE nor the condition that the current number of candidatesNumHmvpCand is six is satisfied (step S2141 of FIG. 28 : NO), the interprediction information candidate hMvpCand is added to the end of thehistory-based motion vector predictor candidate list without removing anelement stored in the history-based motion vector predictor candidatelist HmvpCandList (step S2146 of FIG. 28 ). Here, the end of thehistory-based motion vector predictor candidate list is aNumHmvpCand^(th) element HmvpCandList[NumHmvpCand] when counted from a0^(th) element. Also, NumHmvpCand is incremented by 1 and the presentprocess of shifting/adding an element of the history-based motion vectorpredictor candidate list HmvpCandList ends.

FIG. 31 is an explanatory diagram showing an example of a process ofupdating the history-based motion vector predictor candidate list. Whena new element is added to the history-based motion vector predictorcandidate list HmvpCandList in which six elements (inter predictioninformation) have been registered, the elements are compared with thenew inter prediction information in order from a front element of thehistory-based motion vector predictor candidate list HmvpCandList (FIG.31A). If the new element has the same value as a third element HMVP2from the beginning of the history-based motion vector predictorcandidate list HmvpCandList, the element HMVP2 is removed from thehistory-based motion vector predictor candidate list HmvpCandList andsubsequent elements HMVP3 to HMVP5 are shifted forward (copied) one byone, and the new element is added to the end of the history-based motionvector predictor candidate list HmvpCandList (FIG. 31B) to complete theupdate of the history-based motion vector predictor candidate listHmvpCandList (FIG. 31C).

<History-Based Motion Vector Predictor Candidate Derivation Process>

Next, a method of deriving a history-based motion vector predictorcandidate from the history-based motion vector predictor candidate listHmvpCandList which is a processing procedure of step S304 of FIG. 20that is a process common to the history-based motion vector predictorcandidate derivation unit 323 of the normal motion vector predictor modederivation unit 301 of the coding side and the history-based motionvector predictor candidate derivation unit 423 of the normal motionvector predictor mode derivation unit 401 of the decoding side will bedescribed in detail. FIG. 29 is an explanatory flowchart showing ahistory-based motion vector predictor candidate derivation processingprocedure.

When the current number of motion vector predictor candidatesnumCurrMvpCand is greater than or equal to the maximum number ofelements in the motion vector predictor candidate list mvpListLX (here,2) or a value of the number of history-based motion vector predictorcandidates NumHmvpCand is 0 (NO in step S2201 of FIG. 29 ), theprocessing of steps S2202 to S2209 of FIG. 29 is omitted, and thehistory-based motion vector predictor candidate derivation processingprocedure ends. When the current number of motion vector predictorcandidates numCurrMvpCand is smaller than 2 which is the maximum numberof elements of the motion vector predictor candidate list mvpListLX andthe value of the number of history-based motion vector predictorcandidates NumHmvpCand is greater than 0 (YES in step S2201 of FIG. 29), the processing of steps S2202 to S2209 of FIG. 29 is performed.

Subsequently, the processing of steps S2203 to S2208 of FIG. 29 isiterated until the index i changes from 1 to a smaller value of 4 andthe number of history-based motion vector predictor candidatesnumCheckedHMVPCand (steps S2202 to S2209 of FIG. 29 ). When the currentnumber of motion vector predictor candidates numCurrMvpCand is greaterthan or equal to 2 which is the maximum number of elements of the motionvector predictor candidate list mvpListLX (step S2203 of FIG. 29 : NO),the processing of steps S2204 to S2209 in FIG. 29 is omitted and thepresent history-based motion vector predictor candidate derivationprocessing procedure ends. When the current number of motion vectorpredictor candidates numCurrMvpCand is smaller than 2 which is themaximum number of elements of the motion vector predictor candidate listmvpListLX (step S2203 of FIG. 29 : YES), the processing from step S2204of FIG. 29 is performed.

Subsequently, the processing of step S2205 to S2207 is performed for Y=0and 1 (L0 and L1) (steps S2204 to S2208 of FIG. 29 ). When the currentnumber of motion vector predictor candidates numCurrMvpCand is greaterthan or equal to 2 which is the maximum number of elements of the motionvector predictor candidate list mvpListLX (step S2205 of FIG. 29 : NO),the processing of step S2206 to S2209 of FIG. 29 is omitted and thepresent history-based motion vector predictor candidate derivationprocessing procedure ends. When the current number of motion vectorpredictor candidates numCurrMvpCand is smaller than 2 which is themaximum number of elements of the motion vector predictor candidate listmvpListLX (step S2205 of FIG. 29 : YES), the processing from step S2206of FIG. 29 is performed.

Subsequently, in the case of an element that has a reference indexidentical to the reference index refIdxLX of a coding/decoding targetmotion vector and that is different from any element of the motionvector predictor list mvpListLX within the history-based motion vectorpredictor candidate list HmvpCandList (YES in step S2206 of FIG. 29 ),the motion vector of LY of the history-based motion vector predictorcandidate HmvpCandList[NumHmvpCand−i] is added to a numCurrMvpCand^(th)element mvpListLX[numCurrMvpCand] when counted from a 0^(th) element ofthe motion vector predictor candidate list (step S2207 of FIG. 29 ) andthe current number of motion vector predictor candidates numCurrMvpCandis incremented by one. When there is no element that has a referenceindex identical to the reference index refIdxLX of a coding/decodingtarget motion vector and that is different from any element of themotion vector predictor list mvpListLX within the history-based motionvector predictor candidate list HmvpCandList (NO in step S2207 of FIG.29 ), the addition process of step S2207 is skipped.

The above processing of steps S2205 to S2207 of FIG. 29 is performed forboth L0 and L1 (steps S2204 to S2208 of FIG. 29 ). When the index i isincremented by 1 and the index i is less than or equal to a smallervalue of 4 and the number of history-based motion vector predictorcandidates NumHmvpCand, the processing from step S2203 is performedagain (steps S2202 to S2209 of FIG. 29 ).

<History-Based Merging Candidate Derivation Process>

Next, a method of deriving history-based merging candidates from thehistory-based merging candidate list HmvpCandList which is theprocessing procedure of step S404 of FIG. 21 which is a process commonto the history-based merging candidate derivation unit 345 of the normalmerge mode derivation unit 302 of the coding side and the history-basedmerging candidate derivation unit 445 of the normal merge modederivation unit 402 of the decoding side will be described in detail.FIG. 30 is an explanatory flowchart showing the history-based mergingcandidate derivation processing procedure.

First, an initialization process is performed (step S2301 of FIG. 30 ).Each (numCurrMergeCand−1)^(th) element from 0 of isPruned[i] is set to avalue of FALSE and a variable numOrigMergeCand is set to the number ofelements numCurrMergeCand registered in the current merging candidatelist.

Subsequently, the initial value of the index hMvpIdx is set to 1 and theaddition process of steps S2303 to S2310 of FIG. 30 is iterated untilthe index hMvpIdx changes from the initial value to NumHmvpCand (stepsS2302 to S2311 of FIG. 30 ). If the number of elements registered in thecurrent merging candidate list numCurrMergeCand is not less than orequal to (the maximum number of merging candidates MaxNumMergeCand−1),merging candidates are added to all elements of the merging candidatelist, so that the present history-based merging candidate derivationprocess ends (NO in step S2303 of FIG. 30 ). When the number of theelements numCurrMergeCand registered in the current merging candidatelist is less than or equal to (the maximum number of merging candidatesMaxNumMergeCand−1), the processing from step S2304 is performed.sameMotion is set to a value of FALSE (step S2304 of FIG. 30 ).Subsequently, the initial value of the index i is set to 0 and theprocessing of steps S2306 and S2307 of FIG. 30 is performed until theindex changes from the initial value to numOrigMergeCand−1 (S2305 toS2308 in FIG. 30 ). A comparison is made regarding whether or not a(NumHmvpCand−hMvpIdx)^(th) element HmvpCandList[NumHmvpCand−hMvpIdx]when counted from a 0^(th) element of the history-based motion vectorprediction candidate list has the same value as an i^(th) elementmergeCandList[i] when counted from a 0^(th) element of a mergingcandidate list (step S2306 of FIG. 30 ).

The merging candidates have the same value when values of all components(an inter prediction mode, a reference index, and a motion vector) ofthe merging candidates are identical. When the merging candidates havethe same value and isPruned[i] is FALSE (YES in step S2306 of FIG. 30 ),both sameMotion and isPruned[i] are set to TRUE (step S2307 of FIG. 30). When the merging candidates do not have the same value (NO in stepS2306 of FIG. 30 ), the processing of step S2307 is skipped. When theiterative processing of steps S2305 to S2308 of FIG. 30 has beencompleted, a comparison is made regarding whether or not sameMotion isFALSE (step S2309 of FIG. 30 ). If sameMotion is FALSE (YES in stepS2309 of FIG. 30 ), i.e., because a (NumHmvpCand−hMvpIdx) elementHmvpCandList[NumHmvpCand-hMvpIdx] when counted from a 0^(th) element ofthe history-based motion vector predictor candidate list does not existin mergeCandList, a (NumHmvpCand−hMvpIdx) elementHmvpCandList[NumHmvpCand−hMvpIdx] when counted from a 0^(th) element ofthe history-based motion vector predictor candidate list is added to anumCurrMergeCand^(th) element mergeCandList[numCurrMergeCand] of themerging candidate list and numCurrMergeCand is incremented by 1 (stepS2310 of FIG. 30 ). The index hMvpIdx is incremented by 1 (step S2302 ofFIG. 30 ) and a process of iterating steps S2302 to S2311 of FIG. 30 isperformed.

When the checking of all elements of the history-based motion vectorpredictor candidate list is completed or when merging candidates areadded to all elements of the merging candidate list, the presenthistory-based merging candidate derivation process is completed.

<Subblock-Based Temporal Merging Candidate Derivation>

An operation of the subblock-based temporal merging candidate derivationunit 381 in the subblock-based merge mode derivation unit 304 of FIG. 16will be described with reference to FIG. 50 .

First, it is determined whether or not a coding block is less than 8×8samples (S4002).

When the coding block is less than 8×8 samples (S4002: YES), a flagindicating the presence of the subblock-based temporal merging candidateis set to availableFlagSbCol=0 (S4003). The process of thesubblock-based temporal merging candidate derivation unit ends. Here,when the temporal motion vector prediction is prohibited by the syntaxor when the subblock-based temporal merging is prohibited, theprocessing which is the same as that when the coding block is less than8×8 samples (S4002: YES) is performed.

On the other hand, when the coding block has 8×8 samples or more (S4002:NO), neighboring motion information of the coding block in the codingpicture is derived (S4004).

A process of deriving the neighboring motion information of the codingblock will be described with reference to FIG. 51 . The process ofderiving the neighboring motion information is similar to theabove-described process of the spatial motion vector predictor candidatederivation unit 321. Here, the order in which neighboring blocks aresearched for is A0, B0, B1, and A1 and B2 is not searched for. First,the coding information is acquired with the neighboring block n=A0(S4052). The coding information indicates the flag availableFlagNindicating whether or not a neighboring block is available, a referenceindex refIdxLXN for each reference list, and a motion vector mvLXN.

Next, it is determined whether the neighboring block n is valid orinvalid (S4054). If the flag indicating whether or not the neighboringblock is available is availableFlagN=1, the neighboring block n isvalid. Otherwise, the neighboring block n is invalid.

If the neighboring block n is valid (S4054: YES), the reference indexrefIdxLXN is set to a reference index refIdxLXn of the neighboring blockn (S4056). Also, the motion vector mvLXN is set as the motion vectormvLXn of the neighboring block n (S4056). The process of deriving theneighboring motion information of the blocks ends.

On the other hand, if the neighboring block n is invalid (S4106: NO),the coding information is acquired with the neighboring block n=B0(S4104). Hereinafter, a similar process is performed as a loop processin the order of B1 and A1. The process of deriving the neighboringmotion information is performed as a loop process until the neighboringblock becomes valid and the process of deriving the neighboring motioninformation of a block ends if all the neighboring blocks A0, B0, B1,and A1 are invalid.

FIG. 50 is referred to again. After the neighboring motion informationis derived (S4004), a temporal motion vector is derived (S4006).

The process of deriving the temporal motion vector will be describedwith reference to FIG. 52 . First, a temporal motion vector isinitialized as tempMv=(0, 0) (S4062).

Next, it is determined whether the neighboring motion information isvalid or invalid (S4064). If the flag indicating whether the neighboringblock is available is availableFlagN=1, the neighboring motioninformation is valid. Otherwise, the neighboring motion information isinvalid. When the neighboring motion information is invalid (S4064: NO),the process of deriving the temporal motion vector ends.

On the other hand, when the neighboring motion information is valid(S4064: YES), it is determined whether or not the flag predFlagL1Nindicating whether or not the L1-prediction has been used in theneighboring block N is 1 (S4066). When predFlagL1N=0 (S4066: NO), theprocess proceeds to the next process (S4078). When predFlagL1N=1 (S4066:YES), it is determined whether or not the POCs of all the picturesregistered in all the reference lists is smaller than or equal to thePOC of the current coding target picture (S4068). When thisdetermination is true (S4068: YES), the process proceeds to the nextprocessing (S4070).

When the slice type slice_type is a B slice and the flagcollocated_from_l0_flag is 0 (S4070: YES and S4072: YES), it isdetermined whether or not ColPic is the same as the reference pictureRefPicList1[refIdxL1N] (a picture of the reference index refIdxL1N ofthe reference list L1) (S4074). When this determination is true (S4074:YES), the temporal motion vector tempMv=mvL1N is set (S4076). When thisdetermination is false (S4074: NO), the process proceeds to the nextprocessing (S4078). When the slice type slice_type is not a B slice andthe flag collocated_from_l0_flag is not 0 (S4070: NO or S4072: NO), theprocess proceeds to the next processing (S4078).

Then, it is determined whether or not the flag predFlagL0N indicatingwhether or not the L0-prediction has been used in the neighboring blockN is 1 (S4078). When predFlagL0N=1 (S4078: YES), it is determinedwhether or not ColPic is the same as the reference pictureRefPicList0[refIdxL0N] (a picture of the reference index refIdxL0N ofthe reference list L0) (S4080). When this determination is true (S4080:YES), the temporal motion vector tempMv=mvL0N is set (S4082). When thisdetermination is false (S4080: NO), the process of deriving the temporalmotion vector ends.

FIG. 50 is referred to again. Next, ColPic is derived (S4016). Becausethis processing is the same as that of S4201 in the temporal motionvector predictor candidate derivation unit 322, the description thereofwill be omitted.

The coding block colCb at the different time is set (S4017). Here, acoding block located at the lower right of the center having the sameposition as a target coding block within the picture ColPic at adifferent time is set as colCb. This coding block corresponds to thecoding block T1 of FIG. 55 .

Next, a position where the temporal motion vector tempMv is added to thecoding block colCb becomes a new coding block colCb (S4018). Assumingthat the upper left position of the coding block colCb is (xColCb,yColCb) and the temporal motion vector tempMv is (tempMv[0], tempMv[1])at 1/16 sample precision, the upper left position of the new codingblock colCb is as follows.

xColCb=Clip3(xCtb, xCtb+CtbSizeY+3, xcolCb+(tempMv[0]>>4))

yColCb=Clip3(yCtb, yCtb+CtbSizeY−1, ycolCb+(tempMv[1]>>4))

Here, an upper left position of a tree block is (xCtb, yCtb) and a sizeof the tree block is CtbSizeY. As shown in the above equations, aposition after the addition of tempMv is corrected in a range of aboutthe size of the tree block so that the position after the addition oftempMv does not significantly deviate from a position before theaddition of tempMv. When this position is outside the picture, theposition is corrected inside the picture.

It is determined whether or not the prediction mode PredMode of thecoding block colCb is inter prediction (MODE_INTER) (S4020). When theprediction mode of colCb is not inter prediction (S4020: NO), the flagindicating the presence of the subblock-based temporal merging candidateis set to availableFlagSbCol=0 (S4003). The process of thesubblock-based temporal merging candidate derivation unit ends.

On the other hand, when the prediction mode of colCb is inter prediction(S4020: YES), inter prediction information is derived for each referencelist (S4022 and S4023). Here, a central motion vector ctrMvLX for eachreference list and a flag ctrPredFlagLX indicating whether or notLX-prediction has been used are derived with respect to colCb. LXindicates a reference list, LX becomes L0 in the derivation of referencelist 0, and LX becomes L1 in the derivation of reference list 1.Derivation of inter prediction information will be described withreference to FIG. 53 .

When the coding block colCb at the different time is not available(S4112: NO) or when the prediction mode PredMode is intra prediction(MODE_INTRA) (S4114: NO), both the flag availableFlagLXCol and the flagpredFlagLXCol are set to 0 (step S4116) and the vector mvCol is set as(0, 0) (S4118). The inter prediction information derivation processends.

When the coding block colCb is available (S4112: YES) and the predictionmode PredMode is not intra prediction (MODE_INTRA) (S4114: YES), mvCol,refIdxCol and availableFlagCol are calculated in the followingprocedure.

When a flag PredFlagLX[xPCol][yPCol] indicating whether theLX-prediction of the coding block colCb has been used is 1 (S4120: YES),the motion vector mvCol is set to have the same value asMvLX[xPCol][yPCol] that is the motion vector of LX of the coding blockcolCb (S4122), the reference index refIdxCol is set to have the samevalue as a reference index RefIdxLX[xPCol][yPCol] of LX (S4124), and alist listCol is set to LX (S4126). Here, xPCol and yPCol are indicesindicating a position of an upper left sample of the coding block colCbwithin the picture colPic at the different time.

On the other hand, when the flag PredFlagLX[xPCol][yPCol] indicatingwhether the LX-prediction of the coding block colCb has been used is 0(S4120: NO), the following process is performed. First, it is determinedwhether or not the POCs of all the pictures registered in all thereference lists are smaller than or equal to the POC of the currentcoding target picture (S4128). In addition, it is determined whether ornot a flags PredFlagLY[xPCol][yPCol] indicating whether or not theLY-prediction of colCb has been used is 1 (S4128). Here, a referencelist of the LY-prediction is defined to be different from that of theLX-prediction. That is, LY=L1 at LX=L0 and LY=L0 at LX=L1.

When this determination is true (S4128: YES), the motion vector mvCol isset to have the same value as MvLY[xPCol][yPCol] which is the motionvector of LY of the coding block colCb (S4130), the reference indexrefIdxCol is set to have the same value as a reference indexRefIdxLY[xPCol][yPCol] of LY (S4132), and the list listCol is set to LX(S4134).

On the other hand, when this determination is false (S4128: NO), boththe flag availableFlagLXCol and the flag predFlagLXCol are set to 0(step S4116) and the motion vector mvCol is set as (0, 0) (S4118). Theinter prediction information derivation process ends.

When the inter prediction information can be acquired from the codingblock colCb, both the flag availableFlagLXCol and the flag predFlagLXColare set to 1 (S4136).

Subsequently, the motion vector mvCol is scaled and is set to the motionvector mvLXCol (S4138). Because this processing is the same as that ofS4245 in the temporal motion vector predictor candidate derivation unit322, the description thereof will be omitted.

FIG. 50 is referred to again. After the inter prediction information isderived for each reference list, the calculated motion vector mvLXCol isset as the central motion vector ctrMvLX and the calculated flagpredFlagLXCol is set as the flag ctrPredFlagLX (S4022 and S4023).

Then, it is determined whether the central motion vector is valid orinvalid (S4024). If ctrPredFlagL0=0 and ctrPredFlagL1=0, it isdetermined that the central motion vector is invalid. Otherwise, it isdetermined that the central motion vector is invalid. When the centermotion vector is invalid (S4024: NO), the flag indicating the existenceof the subblock-based temporal merging candidate is set toavailableFlagSbCol=0 (S4003). The process of the subblock-based temporalmerging candidate derivation unit ends.

On the other hand, when the center motion vector is valid (S4024: YES),the flag indicating the presence of the subblock-based temporal mergingcandidate is set to availableFlagSbCol=1 (S4025) and the subblock motioninformation is derived (S4026). This processing will be described withreference to FIG. 54 .

First, the number of subblocks numSbX in a width direction and thenumber of subblocks numSbY in a height direction are calculated from awidth cbWidth and a height cBheight of the coding block colCb (S4152).Also, refIdxLXSbCol=0 is set (S4152). After this processing, aniterative process is performed in units of prediction subblocks colSb.This iterative process is performed while an index ySbIdx in the heightdirection changes from 0 to numSbY and an index xSbIdx in the widthdirection changes from 0 to numSbX.

Assuming that the upper left position of the coding block colCb is (xCb,yCb), the upper left position (xSb, ySb) of the prediction subblockcolSb is calculated as follows.

xSb=xCb+xSbIdx*sbWidth

ySb=yCb+ySbIdx*sbHeight

Next, a position where the temporal motion vector tempMv is added to theprediction subblock colSb becomes a new prediction subblock colSb(S4154). Assuming that the upper left position of the predictionsubblock colSb is (xColSb, yColSb) and the temporal motion vector tempMvis (tempMv[0], tempMv[1]) at 1/16 sample precision, the upper leftposition of the new prediction subblock colSb is as follows.

xColSb=Clip3(xCtb, xCtb+CtbSizeY+3, xSb+(tempMv[0]>>4))

yColSb=Clip3(yCtb, yCtb+CtbSizeY−1, ySb+(tempMv[1]>>4))

Here, an upper left position of a tree block is (xCtb, yCtb) and a sizeof the tree block is CtbSizeY. As shown in the above equations, aposition after the addition of tempMv is corrected in a range of aboutthe size of the tree block so that the position after the addition oftempMv does not significantly deviate from a position before theaddition of tempMv. When this position is outside the picture, theposition is corrected inside the picture.

The inter prediction information is derived for each reference list(S4156 and S4158). Here, a motion vector mvLXSbCol for each referencelist and a flag availableFlagLXSbCol indicating whether or not aprediction subblock is valid are derived in units of subblocks withrespect to the prediction subblock colSb. LX indicates a reference list,LX becomes L0 in the derivation of reference list 0, and LX becomes L1in the derivation of reference list 1. Because the derivation of theinter prediction information is the same as the processing of S4022 andS4023 in FIG. 50 , the description thereof will be omitted.

After the inter prediction information is derived (S4156 and S4158), itis determined whether or not the prediction subblock colSb is valid(S4160). When availableFlagL0SbCol=0 and availableFlagL1SbCol=0, it isdetermined that colSb is invalid. Otherwise, it is determined that colSbis valid. When colSb is invalid (S4160: NO), the motion vector mvLXSbColis set to the center motion vector ctrMvLX (S4162). Further, a flagpredFlagLXSbCol indicating whether or not the LX-prediction has beenused is set to the flag ctrPredFlagLX in the central motion vector(S4162). Accordingly, the derivation of the subblock motion informationends.

FIG. 50 is referred to again. The motion vector mvL0SbCol of L0 and themotion vector mvL1SbCol of L1 are added as candidates to thesubblock-based merging candidate list subblockMergeCandList in theabove-described subblock-based merge mode derivation unit 304 (S4028).However, this addition is made only when a flag indicating the presenceof the subblock-based temporal merging candidate is availableSbCol=1.Accordingly, the process of the temporal merging candidate derivationunit 342 ends.

Although the above description of the subblock-based temporal mergingcandidate derivation unit 381 is for coding, the same is true fordecoding. That is, the operation of the subblock-based temporal mergingcandidate derivation unit 481 in the subblock-based merge modederivation unit 404 of FIG. 22 can be similarly described by replacingthe coding in the above description with decoding.

<Motion-Compensated Prediction Process>

The motion-compensated prediction unit 306 acquires a position and asize of a block that is a current target of a prediction process incoding. Also, the motion-compensated prediction unit 306 acquires interprediction information from the inter prediction mode determination unit305. A reference index and a motion vector are derived from the acquiredinter prediction information and a prediction signal is generated aftera picture signal of a position to which a reference picture identifiedby the reference index within the decoded picture memory 104 is movedfrom a position identical to that of a picture signal of a predictionblock by an amount of motion vector is acquired.

A motion-compensated prediction signal is supplied to a predictionmethod determination unit 105 using a prediction signal acquired fromone reference picture as a motion-compensated prediction signal when theinter prediction mode in the inter prediction is prediction from asingle reference picture such as L0-prediction or L1-prediction andusing a prediction signal obtained by weighted-averaging predictionsignals acquired from two reference pictures as a motion-compensatedprediction signal when the prediction mode is prediction from tworeference pictures such as an inter prediction mode of Bi-prediction.Although a weighted average ratio of bi-prediction is 1:1 here, aweighted average may be performed using another ratio. For example, aweighting ratio may increase as the picture interval between a picture,which is a prediction target, and a reference picture decreases. Also,the weighting ratio may be calculated using a corresponding tablebetween combinations of picture intervals and weighting ratios.

The motion-compensated prediction unit 406 has a function similar tothat of the motion-compensated prediction unit 306 of the coding side.The motion-compensated prediction unit 406 acquires inter predictioninformation from the normal motion vector predictor mode derivation unit401, the normal merge mode derivation unit 402, the subblock-basedmotion vector predictor mode derivation unit 403, and the subblock-basedmerge mode derivation unit 404 via the switch 408. Themotion-compensated prediction unit 406 supplies an obtainedmotion-compensated prediction signal to the decoding picture signalsuperimposition unit 207.

<About Inter Prediction Mode>

A process of performing prediction from a single reference picture isdefined as uni-prediction. In the case of uni-prediction, predictionusing either one of two reference pictures registered in reference listsL0 and L1 such as L0-prediction or L1-prediction is performed.

FIG. 32 shows the case of uni-prediction in which a clock time of areference picture (RefL0Pic) of L0 is earlier than that of a targetpicture (CurPic). FIG. 33 shows the case of uni-prediction in which aclock time of a reference picture of the L0-prediction is later thanthat of a target picture. Likewise, the reference picture ofL0-prediction of FIGS. 32 and 33 can be replaced with a referencepicture (RefL1Pic) of L1-prediction to perform uni-prediction.

The process of performing prediction from two reference pictures isdefined as bi-prediction and the bi-prediction is represented asBi-prediction using both L0-prediction and L1-prediction. FIG. 34 showsthe case of the bi-prediction in which a clock time of a referencepicture of L0-prediction is earlier than that of a target picture and aclock time of a reference picture of L1-prediction is later than that ofthe target picture. FIG. 35 shows the case of bi-prediction in whichclock times of the reference picture of L0-prediction and the referencepicture of L1-prediction are earlier than that of a target picture. FIG.36 shows the case of bi-prediction in which a clock time of a referencepicture of L0-prediction and a clock time of a reference picture ofL1-prediction are later than that of a target picture.

As described above, a relationship between a type of prediction of L0/L1and time can be used without being limited to L0 which is in the pastdirection and L1 which is in the future direction. In the case ofbi-prediction, each of L0-prediction and L1-prediction may be performedusing the same reference picture. Also, it is determined whether toperform motion-compensated prediction according to uni-prediction orbi-prediction on the basis of, for example, information (for example, aflag) indicating whether to use L0-prediction and whether to useL1-prediction.

<About Reference Index>

In the embodiment of the present invention, it is possible to select anoptimum reference picture from a plurality of reference pictures inmotion-compensated prediction to improve the accuracy ofmotion-compensated prediction. Thus, the reference picture used in themotion-compensated prediction is used as a reference index and thereference index is coded in the bitstream together with the motionvector difference.

<Motion Compensation Process Based on Normal Motion Vector PredictorMode>

As shown in the inter prediction unit 102 of the coding side of FIG. 16, when inter prediction information from the normal motion vectorpredictor mode derivation unit 301 has been selected in the interprediction mode determination unit 305, the motion-compensatedprediction unit 306 acquires the inter prediction information from theinter prediction mode determination unit 305, derives an interprediction mode, a reference index, and a motion vector of a currenttarget block, and generates a motion-compensated prediction signal. Thegenerated motion-compensated prediction signal is supplied to theprediction method determination unit 105.

Likewise, as shown in the inter prediction unit 203 of the decoding sideof FIG. 22 , when the switch 408 has been connected to the normal motionvector predictor mode derivation unit 401 in the decoding process, themotion-compensated prediction unit 406 acquires inter predictioninformation from the normal motion vector predictor mode derivation unit401, derives an inter prediction mode, a reference index, and a motionvector of a current target block, and generates a motion-compensatedprediction signal. The generated motion-compensated prediction signal issupplied to the decoding picture signal superimposition unit 207.

<Motion Compensation Process Based on Normal Merge Mode>

Also, as shown in the inter prediction unit 102 in the coding side ofFIG. 16 , when inter prediction information has been selected from thenormal merge mode derivation unit 302 in the inter prediction modedetermination unit 305, the motion-compensated prediction unit 306acquires the inter prediction information from the inter prediction modedetermination unit 305, derives an inter prediction mode, a referenceindex, and a motion vector of a current target block, and generates amotion-compensated prediction signal. The generated motion-compensatedprediction signal is supplied to the prediction method determinationunit 105.

Likewise, as shown in the inter prediction unit 203 in the decoding sideof FIG. 22 , when the switch 408 has been connected to the normal mergemode derivation unit 402 in the decoding process, the motion-compensatedprediction unit 406 acquires inter prediction information from thenormal merge mode derivation unit 402, derives an inter prediction mode,a reference index, and a motion vector of a current target block, andgenerates a motion-compensated prediction signal. The generatedmotion-compensated prediction signal is supplied to the decoding picturesignal superimposition unit 207.

<Motion Compensation Process Based on Subblock-Based Motion VectorPredictor Mode>

Also, as shown in the inter prediction unit 102 on the coding side ofFIG. 16 , when inter prediction information from the subblock-basedmotion vector predictor mode derivation unit 303 has been selected inthe inter prediction mode determination unit 305, the motion-compensatedprediction unit 306 acquires the inter prediction information from theinter prediction mode determination unit 305, derives an interprediction mode, a reference index, and a motion vector of a currenttarget block, and generates a motion-compensated prediction signal. Thegenerated motion-compensated prediction signal is supplied to theprediction method determination unit 105.

Likewise, as shown in the inter prediction unit 203 in the decoding sideof FIG. 22 , when the switch 408 has been connected to thesubblock-based motion vector predictor mode derivation unit 403 in thedecoding process, the motion-compensated prediction unit 406 acquiresinter prediction information from the subblock-based motion vectorpredictor mode derivation unit 403, derives an inter prediction mode, areference index, and a motion vector of a current target block, andgenerates a motion-compensated prediction signal. The generatedmotion-compensated prediction signal is supplied to the decoding picturesignal superimposition unit 207.

<Motion Compensation Process Based on Subblock-Based Merge Mode>

Also, as shown in the inter prediction unit 102 on the coding side ofFIG. 16 , when inter prediction information from the subblock-basedmerge mode derivation unit 304 has been selected in the inter predictionmode determination unit 305, the motion-compensated prediction unit 306acquires the inter prediction information from the inter prediction modedetermination unit 305, derives an inter prediction mode, a referenceindex, and a motion vector of a current target block, and generates amotion-compensated prediction signal. The generated motion-compensatedprediction signal is supplied to the prediction method determinationunit 105.

Likewise, as shown in the inter prediction unit 203 in the decoding sideof FIG. 22 , when the switch 408 has been connected to thesubblock-based merge mode derivation unit 404 in the decoding process,the motion-compensated prediction unit 406 acquires inter predictioninformation from the subblock-based merge mode derivation unit 404,derives an inter prediction mode, a reference index, and a motion vectorof a current target block, and generates a motion-compensated predictionsignal. The generated motion-compensated prediction signal is suppliedto the decoding picture signal superimposition unit 207.

<Motion Compensation Process Based on Affine Transform Prediction>

In the normal motion vector predictor mode and the normal merge mode,motion compensation of an affine model can be used on the basis of thefollowing flags. The following flags are reflected in the followingflags on the basis of inter prediction conditions determined by theinter prediction mode determination unit 305 in the coding process andare coded in a bitstream. In the decoding process, it is identifiedwhether to perform the motion compensation of the affine model on thebasis of the following flags in the bitstream.

sps_affine_enabled_flag represents whether or not motion compensation ofthe affine model can be used in inter prediction. Ifsps_affine_enabled_flag is 0, suppression is performed so that it is notmotion compensation of an affine model in units of sequences. Also,inter_affine_flag and cu_affine_type_flag are not transmitted in CU(coding block) syntax of a coding video sequence. Ifsps_affine_enabled_flag is 1, motion compensation of an affine model canbe used in a coding video sequence.

sps_affine_type_flag represents whether or not motion compensation of asix-parameter affine model can be used in inter prediction. Ifsps_affine_type_flag is 0, suppression is performed so that it is notmotion compensation of the six-parameter affine model. Also,cu_affine_type_flag is not transmitted in CU syntax of a coding videosequence. If sps_affine_type_flag is 1, motion compensation of thesix-parameter affine model can be used in the coding video sequence.When sps_affine_type_flag does not exist, it is assumed to be 0.

When a P or B slice is decoded, if inter_affine_flag is 1 in the currenttarget CU, motion compensation of the affine model is used to generate amotion-compensated prediction signal of the current target CU. Ifinter_affine_flag is 0, the affine model is not used in the currenttarget CU. When inter_affine_flag does not exist, it is assumed to be 0.

When a P or B slice is decoded, if cu_affine_type_flag is 1 in thecurrent target CU, motion compensation of a six-parameter affine modelis used to generate a motion-compensated prediction signal of thecurrent target CU. If cu_affine_type_flag is 0, motion compensation of afour-parameter affine model is used to generate a motion-compensatedprediction signal of the current target CU.

In motion compensation of an affine model, because a reference index anda motion vector are derived in units of subblocks, a motion-compensatedprediction signal is generated using a reference index or a motionvector which is a target in units of subblocks.

A four-parameter affine model is a mode in which the motion vector ofthe subblock is derived from four parameters of horizontal componentsand vertical components of motion vectors of the two control points andmotion compensation is performed in units of subblocks.

Second Embodiment

In a second embodiment, at the time of derivation of affine constructionmerge candidates in subblock-based merge mode derivation units 304 and404, a target reference picture to be compared with reference picturesof affine control points (CP0, CP1, CP2, and CP3) is fixed and it isdetermined whether or not an affine transform is possible. For example,the target reference picture is fixed to a reference picture havingreference picture index 0 and it is determined whether or not an affinetransform is possible according to each combination of affine controlpoints (CP0, CP1, CP2, and CP3).

By comparing the reference picture of each affine control point with thefixed reference picture, it is possible to construct an affine model ofthree affine control points based on an upper right affine control pointCP1, a lower left affine control point CP2, and a lower right affinecontrol point CP3 without using an upper left affine control point CP0.Thereby, it is possible to improve a possibility that the affineconstruction merging candidate can be derived, the prediction accuracyof the affine merge mode is improved, and the coding efficiency isimproved.

Two or more of all the embodiments described above may be combined.

In all the embodiments described above, a bitstream output by thepicture coding device has a specific data format so that the bitstreamcan be decoded in accordance with the coding method used in theembodiment. Also, a picture decoding device corresponding to the picturecoding device can decode the bitstream of the specific data format.

When a wired or wireless network is used to exchange a bitstream betweenthe picture coding device and the picture decoding device, the bitstreammay be converted into a data format suitable for a transmission form ofa communication path and transmitted. In this case, a transmissiondevice for converting the bitstream output from the picture codingdevice into coded data of a data format suitable for the transmissionform of the communication path and transmitting the coded data to thenetwork and a reception device for receiving the coded data from thenetwork, restoring the coded data to the bitstream, and supplying thebitstream to the picture decoding device are provided. The transmissiondevice includes a memory that buffers the bitstream output by thepicture coding device, a packet processing unit that packetizes thebitstream, and a transmission unit that transmits packetized coded datavia the network. The reception device includes a reception unit thatreceives the packetized coded data via the network, a memory thatbuffers the received coded data, and a packet processing unit thatgenerates a bitstream by performing packet processing on the coded dataand supplies the bitstream to the picture decoding device.

Also, a display device may be provided by adding a display unit thatdisplays a picture decoded by the picture decoding device to theconfiguration. In this case, the display unit reads a decoded picturesignal generated by the decoding picture signal superimposition unit 207and stored in the decoded picture memory 208 and displays the decodedpicture signal on a screen.

Also, an imaging device may be provided by adding an imaging unit thatinputs a captured picture to the picture coding device to theconfiguration. In this case, the imaging unit inputs a captured picturesignal to the block split unit 101.

FIG. 37 shows an example of a hardware configuration of thecoding/decoding device according to the present embodiment. Thecoding/decoding device includes the configuration of the picture codingdevice and the picture decoding device according to the embodiment ofthe present invention. A related coding/decoding device 9000 includes aCPU 9001, a codec IC 9002, an I/O interface 9003, a memory 9004, anoptical disc drive 9005, a network interface 9006, and a video interface9009 and the respective parts are connected by a bus 9010.

A picture coding unit 9007 and a picture decoding unit 9008 aretypically implemented as the codec IC 9002. A picture coding process ofthe picture coding device according to the embodiment of the presentinvention is executed by the picture coding unit 9007 and a picturedecoding process in the picture decoding device according to theembodiment of the present invention is performed by the picture decodingunit 9008. The I/O interface 9003 is implemented by, for example, a USBinterface, and is connected to an external keyboard 9104, a mouse 9105,and the like. The CPU 9001 controls the coding/decoding device 9000 sothat a user-desired operation is executed on the basis of a useroperation input via the I/O interface 9003. User operations using thekeyboard 9104, the mouse 9105, and the like include the selection of acoding or decoding function to be executed, setting of coding quality,designation of an input/output destination of a bitstream, designationof an input/output destination of a picture, and the like.

When the user desires an operation of reproducing a picture recorded ona disc recording medium 9100, the optical disc drive 9005 reads abitstream from the disc recording medium 9100 that has been inserted andtransmits the read bitstream to the picture decoding unit 9008 of thecodec IC 9002 via the bus 9010. The picture decoding unit 9008 executesa picture decoding process on the input bitstream in the picturedecoding device according to the embodiment of the present invention andtransmits a decoded picture to an external monitor 9103 via the videointerface 9009. The coding/decoding device 9000 includes a networkinterface 9006 and can be connected to an external distribution server9106 and a portable terminal 9107 via a network 9101. When the userdesires to reproduce the picture recorded on the distribution server9106 or the portable terminal 9107 instead of the picture recorded onthe disc recording medium 9100, the network interface 9006 acquires abitstream from the network 9101 instead of reading the bitstream fromthe input disc recording medium 9100. When the user desires to reproducethe picture recorded in the memory 9004, the picture decoding process inthe picture decoding device according to the embodiment of the presentinvention is executed on the bitstream recorded in the memory 9004.

When the user desires to perform an operation of coding a picturecaptured by the external camera 9102 and recording the coded picture inthe memory 9004, the video interface 9009 inputs the picture from thecamera 9102 and transmits the picture to the picture coding unit 9007 ofthe codec IC 9002 via the bus 9010. The picture coding unit 9007executes a picture coding process on a picture input via the videointerface 9009 in the picture coding device according to the embodimentof the present invention to create a bitstream. Then, the bitstream istransmitted to the memory 9004 via the bus 9010. When the user desiresto record a bitstream on the disc recording medium 9100 instead of thememory 9004, the optical disc drive 9005 writes the bitstream to thedisc recording medium 9100 which has been inserted.

It is also possible to implement a hardware configuration that includesa picture coding device without including a picture decoding device or ahardware configuration that includes a picture decoding device withoutincluding a picture coding device. Such a hardware configuration isimplemented, for example, by replacing the codec IC 9002 with thepicture coding unit 9007 or the picture decoding unit 9008.

The above processes related to coding and decoding may be implemented asa transmission, storage, and reception device using hardware andimplemented by firmware stored in a read only memory (ROM), a flashmemory, or the like or software of a computer or the like. A firmwareprogram and a software program thereof may be provided by recording theprograms on a recording medium capable of being read by a computer orthe like or may be provided from a server through a wired or wirelessnetwork or may be provided as data broadcasts of terrestrial orsatellite digital broadcasting.

The present invention has been described above on the basis of theembodiments. The embodiments are examples and it will be understood bythose skilled in the art that various modifications are possible incombinations of the respective components and processing processes andsuch modifications are within the scope of the present invention.

EXPLANATION OF REFERENCES

100 Picture coding device

101 Block split unit

102 Inter prediction unit

103 Intra prediction unit

104 Decoded picture memory

105 Prediction method determination unit

106 Residual generation unit

107 Orthogonal transform/quantization unit

108 Bit strings coding unit

109 Inverse quantization/inverse orthogonal transform unit

110 Decoding picture signal superimposition unit

111 Coding information storage memory

200 Picture decoding device

201 Bit strings decoding unit

202 Block split unit

203 Inter prediction unit

204 Intra prediction unit

205 Coding information storage memory

206 Inverse quantization/inverse orthogonal transform unit

207 Decoding picture signal superimposition unit

208 Decoded picture memory

What is claimed is:
 1. A moving-picture coding device for performing anaffine transform in units of coding blocks, the moving-picture codingdevice comprising: a subblock-based temporal merging candidatederivation unit configured to derive a subblock-based temporal mergingcandidate which comprises a motion vector and a flag indicating whetheror not a prediction subblock is valid for each reference list in unitsof subblocks; an affine inheritance merging candidate derivation unitconfigured to derive an affine inheritance merging candidate forinheriting an affine model of blocks neighboring a coding target blockin a space domain; an affine construction merging candidate derivationunit configured to derive an affine construction merging candidate froma plurality of motion information elements of blocks neighboring thecoding target block in a space or time domain; an affine fixationmerging candidate derivation unit configured to derive an affinefixation merging candidate in which motion information of an affinecontrol point is fixed; and a subblock-based merging candidate selectionunit configured to select a subblock-based merging candidate from thesubblock-based temporal merging candidate, the affine inheritancemerging candidate, the affine construction merging candidate and theaffine fixation merging candidate, wherein the affine fixation mergingcandidate derivation unit is further configured to fix a motion vectorof each affine control point of the affine fixed merge candidate to (0,0).
 2. A moving-picture coding method for performing an affine transformin units of coding blocks, the method comprising: deriving asubblock-based temporal merging candidate which comprises a motionvector and a flag indicating whether or not a prediction subblock isvalid for each reference list in units of subblocks; deriving an affineinheritance merging candidate for inheriting an affine model of blocksneighboring a coding target block in a space domain; deriving an affineconstruction merging candidate from a plurality of motion informationelements of blocks neighboring the coding target block in a space ortime domain; deriving an affine fixation merging candidate in whichmotion information of an affine control point is fixed; and selecting asubblock-based merging candidate from the subblock-based temporalmerging candidate, the affine inheritance merging candidate, the affineconstruction merging candidate and the affine fixation mergingcandidate, wherein the deriving the affine fixation merging candidatefurther comprises fixing a motion vector of each affine control point ofthe affine fixed merge candidate to (0, 0).
 3. A computer program storedin a non-transitory computer readable medium applied to a moving-picturecoding operation which performs an affine transform in units of codingblocks, the computer program comprising instructions of: deriving asubblock-based temporal merging candidate which comprises a motionvector and a flag indicating whether or not a prediction subblock isvalid for each reference list in units of subblocks; deriving an affineinheritance merging candidate for inheriting an affine model of blocksneighboring a coding target block in a space domain; deriving an affineconstruction merging candidate from a plurality of motion informationelements of blocks neighboring the coding target block in a space ortime domain; deriving an affine fixation merging candidate in whichmotion information of an affine control point is fixed; and selecting asubblock-based merging candidate from the subblock-based temporalmerging candidate, the affine inheritance merging candidate, the affineconstruction merging candidate and the affine fixation mergingcandidate, wherein the deriving the affine fixation merging candidatefurther comprises fixing a motion vector of each affine control point ofthe affine fixed merge candidate to (0, 0).
 4. A moving-picture decodingdevice for performing an affine transform in units of decoding blocks,the moving-picture decoding device comprising: a subblock-based temporalmerging candidate derivation unit configured to derive a subblock-basedtemporal merging candidate which comprises a motion vector and a flagindicating whether or not a prediction subblock is valid for eachreference list in units of subblocks; an affine inheritance mergingcandidate derivation unit configured to derive an affine inheritancemerging candidate for inheriting an affine model of blocks neighboring adecoding target block in a space domain; an affine construction mergingcandidate derivation unit configured to derive an affine constructionmerging candidate from a plurality of motion information elements ofblocks neighboring the decoding target block in a space or time domain;an affine fixation merging candidate derivation unit configured toderive an affine fixation merging candidate in which motion informationof an affine control point is fixed, and a subblock-based mergingcandidate selection unit configured to select a subblock-based mergingcandidate from the subblock-based temporal merging candidate, the affineinheritance merging candidate, the affine construction merging candidateand the affine fixation merging candidate, wherein the affine fixationmerging candidate derivation unit is further configured to fix a motionvector of each affine control point of the affine fixed merge candidateto (0, 0).
 5. A moving-picture decoding method for performing an affinetransform in units of decoding blocks, the method comprising: deriving asubblock-based temporal merging candidate which comprises a motionvector and a flag indicating whether or not a prediction subblock isvalid for each reference list in units of subblocks; deriving an affineinheritance merging candidate for inheriting an affine model of blocksneighboring a decoding target block in a space domain; deriving anaffine construction merging candidate from a plurality of motioninformation elements of blocks neighboring the decoding target block ina space or time domain; deriving an affine fixation merging candidate inwhich motion information of an affine control point is fixed; andselecting a subblock-based merging candidate from the subblock-basedtemporal merging candidate, the affine inheritance merging candidate,the affine construction merging candidate and the affine fixationmerging candidate, wherein the deriving an affine fixation mergingcandidate further comprises fixing a motion vector of each affinecontrol point of the affine fixed merge candidate to (0, 0).
 6. Acomputer program stored in a non-transitory computer readable mediumapplied to a moving-picture decoding operation which performs an affinetransform in units of decoding blocks, the computer program comprisinginstructions of: deriving a subblock-based temporal merging candidatewhich comprises a motion vector and a flag indicating whether or not aprediction subblock is valid for each reference list in units ofsubblocks; deriving an affine inheritance merging candidate forinheriting an affine model of blocks neighboring a decoding target blockin a space domain; deriving an affine construction merging candidatefrom a plurality of motion information elements of blocks neighboringthe decoding target block in a space or time domain; deriving an affinefixation merging candidate in which motion information of an affinecontrol point is fixed; and selecting a subblock-based merging candidatefrom the subblock-based temporal merging candidate, the affineinheritance merging candidate, the affine construction merging candidateand the affine fixation merging candidate, wherein the deriving anaffine fixation merging candidate further comprises fixing a motionvector of each affine control point of the affine fixed merge candidateto (0, 0).
 7. A non-transitory computer readable medium storing abitstream coded in units of blocks by a computer program, the computerprogram comprising: deriving a subblock-based temporal merging candidatewhich comprises a motion vector a flag indicating whether or not aprediction subblock is valid for each reference list in units ofsubblocks; deriving an affine inheritance merging candidate forinheriting an affine model of blocks neighboring a coding target blockin a space domain; deriving an affine construction merging candidatefrom a plurality of motion information elements of blocks neighboringthe coding target block in the space domain or in a time domain;deriving an affine fixation merging candidate in which motioninformation of an affine control point is fixed; selecting asubblock-based merging candidate based on an index from thesubblock-based temporal merging candidate, the affine inheritancemerging candidate, the affine construction merging candidate and theaffine fixation merging candidate; and fixing a motion vector of eachaffine control point of the affine fixed merge candidate to (0, 0),wherein the bitstream comprises the index.